hqchart 1.1.14982 → 1.1.14986

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.
@@ -2151,7 +2151,7 @@ this.Canvas.beginPath();this.Canvas.rect(client.RightEx,border.TopEx,client.Righ
2151
2151
  this.Frame.SetFrameBorderSizeChange();this.Frame.ReDrawToolbar();this.Draw();return true;};this.OnZoomUpDownFrameY=function(obj,yMove){if(!this.Frame)return;if(!this.Frame.OnZoomUpDownFrameY(obj,yMove))return;this.Frame.SetSizeChage(true);this.Draw();};this.OnUpDonwFrameY=function(obj,yMove){if(!this.Frame)return false;if(!this.Frame.OnUpDonwFrameY(obj,yMove))return false;this.Frame.SetSizeChage(true);return true;};this.CancelZoomUpDownFrameY=function(obj){if(!this.Frame)return;if(!this.Frame.CancelZoomUpDownFrameY(obj))return;this.UpdateFrameMaxMin();this.Frame.SetSizeChage(true);this.Draw();};this.IsKLineContainer=function(){if(this.ClassName=='KLineChartContainer'||this.ClassName=='KLineChartHScreenContainer'||this.ClassName=="KLineTrainChartContainer"||this.ClassName=="CustomKLineChartContainer")return true;return false;};this.IsMinuteContainer=function(){if(this.ClassName=="MinuteChartContainer"||this.ClassName=="MinuteChartHScreenContainer")return true;return false;};this.UpdatePointByCursorIndex=function(type)//type 1=根据十字光标更新 2=强制取消十字光标
2152
2152
  {if(type==1)//根据十字光标更新
2153
2153
  {if(this.LastPoint.FrameID<0)return;var pt={X:null,Y:this.LastPoint.Y};pt.X=this.Frame.GetXFromIndex(this.CursorIndex);//X轴动态变的
2154
- if(this.ChartCorssCursor){if(this.ChartCorssCursor.Status==1){}else{pt.Y=null;pt.X=null;}}this.LastPoint.X=pt.X;this.LastPoint.Y=pt.Y;}else if(type==2){this.LastPoint.Y=null;this.LastPoint.X=null;this.LastPoint.FrameID=-1;}else{var pt={X:null,Y:null};pt.X=this.Frame.GetXFromIndex(this.CursorIndex);var index=this.CursorIndex;var data=this.GetKData();if(data.DataOffset+index<data.Data.length){var close=data.Data[data.DataOffset+index].Close;pt.Y=this.Frame.GetYFromData(close);}this.LastPoint.X=pt.X;this.LastPoint.Y=pt.Y;this.LastPoint.FrameID=0;}};this.ShowTooltipByKeyDown=function(){if(!this.KLineTooltipConfig.Enable||!this.KLineTooltipConfig.EnableKeyDown){this.HideFloatTooltip();return;}var kData=this.GetKData();if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return;var index=Math.abs(this.CursorIndex-0.5);index=parseInt(index.toFixed(0));if(this.ClassName=='KLineChartContainer'||this.ClassName=='KLineTrainChartContainer')index=this.CursorIndex;var dataIndex=kData.DataOffset+index;if(dataIndex<0||dataIndex>=kData.Data.length)return;var kItem=kData.Data[dataIndex];if(!kItem)return;var data=this.Frame.Data;var toolTip=new TooltipData();toolTip.Data=kItem;toolTip.ChartPaint=this.ChartPaint[0];var pixelTatio=GetDevicePixelRatio();if(pixelTatio===0)pixelTatio=1;//div 缩放还是使用原始坐标
2154
+ if(this.ChartCorssCursor){if(this.ChartCorssCursor.Status==1){}else{pt.Y=null;pt.X=null;}}this.LastPoint.X=pt.X;this.LastPoint.Y=pt.Y;}else if(type==2){this.LastPoint.Y=null;this.LastPoint.X=null;this.LastPoint.FrameID=-1;}else{var pt={X:null,Y:null};pt.X=this.Frame.GetXFromIndex(this.CursorIndex);var index=this.CursorIndex;var data=this.GetKData();if(IFrameSplitOperator.IsGTEZero(index)&&data.DataOffset+index<data.Data.length){var close=data.Data[data.DataOffset+index].Close;pt.Y=this.Frame.GetYFromData(close);this.LastPoint.FrameID=0;}this.LastPoint.X=pt.X;this.LastPoint.Y=pt.Y;}};this.ShowTooltipByKeyDown=function(){if(!this.KLineTooltipConfig.Enable||!this.KLineTooltipConfig.EnableKeyDown){this.HideFloatTooltip();return;}var kData=this.GetKData();if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return;var index=Math.abs(this.CursorIndex-0.5);index=parseInt(index.toFixed(0));if(this.ClassName=='KLineChartContainer'||this.ClassName=='KLineTrainChartContainer')index=this.CursorIndex;var dataIndex=kData.DataOffset+index;if(dataIndex<0||dataIndex>=kData.Data.length)return;var kItem=kData.Data[dataIndex];if(!kItem)return;var data=this.Frame.Data;var toolTip=new TooltipData();toolTip.Data=kItem;toolTip.ChartPaint=this.ChartPaint[0];var pixelTatio=GetDevicePixelRatio();if(pixelTatio===0)pixelTatio=1;//div 缩放还是使用原始坐标
2155
2155
  this.ShowTooltip(this.LastPoint.X/pixelTatio,this.LastPoint.Y/pixelTatio,toolTip);};this.DrawTooltipDialog=function(){};this.DrawFloatTooltip=function(point,toolTip){if(!this.FloatTooltip)return;this.UpdateFloatTooltip(point,toolTip);};this.UpdateFloatTooltip=function(point,toolTip){if(!this.FloatTooltip)return;var sendData={Tooltip:toolTip,Point:point,Symbol:this.Symbol,Name:this.Name,DataType:1};this.FloatTooltip.Update(sendData);};//更新实时行情到浮动tooltip
2156
2156
  this.UpdateHQFloatTooltip=function(item){};this.ShowTooltip=function(x,y,toolTip){var _this16=this;if(!this.IsShowTooltip)return;var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
2157
2157
  var xMove=15/pixelTatio;//顶部坐标偏移位置
@@ -5527,12 +5527,13 @@ return IFrameSplitOperator.FormatValueString(value,floatPrecision,languageID);};
5527
5527
  IFrameSplitOperator.MillisecondToString=function(value){if(value<10)return'00'+value.toString();else if(value<100)return'0'+value.toString();else return value.toString();};IFrameSplitOperator.FormatDateString=function(value,format,languageID){var year=parseInt(value/10000);var month=parseInt(value/100)%100;var day=value%100;switch(format){case'MM-DD':return IFrameSplitOperator.NumberToString(month)+'-'+IFrameSplitOperator.NumberToString(day);case"MM-DD/W":var date=new Date(year,month-1,day);var week=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],languageID);return IFrameSplitOperator.NumberToString(month)+'-'+IFrameSplitOperator.NumberToString(day)+'/'+week;case"MM/DD":return IFrameSplitOperator.NumberToString(month)+'/'+IFrameSplitOperator.NumberToString(day);case"MM/DD/W":var date=new Date(year,month-1,day);var week=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],languageID);return IFrameSplitOperator.NumberToString(month)+'/'+IFrameSplitOperator.NumberToString(day)+'/'+week;case"YYYY-MM":return year+'-'+IFrameSplitOperator.NumberToString(month);case"YYYY/MM/DD":return year.toString()+'/'+IFrameSplitOperator.NumberToString(month)+'/'+IFrameSplitOperator.NumberToString(day);case"YYYY/MM/DD/W":{var date=new Date(year,month-1,day);var week=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],languageID);return year.toString()+'/'+IFrameSplitOperator.NumberToString(month)+'/'+IFrameSplitOperator.NumberToString(day)+"/"+week.toString();}case"DD/MM/YYYY":return IFrameSplitOperator.NumberToString(day)+'/'+IFrameSplitOperator.NumberToString(month)+'/'+year.toString();default://YYYY-MM-DD
5528
5528
  return year.toString()+'-'+IFrameSplitOperator.NumberToString(month)+'-'+IFrameSplitOperator.NumberToString(day);}};IFrameSplitOperator.FormatTimeString=function(value,format)//format hh:mm:ss
5529
5529
  {if(format=='HH:MM:SS'){var hour=parseInt(value/10000);var minute=parseInt(value%10000/100);var second=value%100;return IFrameSplitOperator.NumberToString(hour)+':'+IFrameSplitOperator.NumberToString(minute)+':'+IFrameSplitOperator.NumberToString(second);}else if(format=="hh:mm"){var hour=parseInt(value/10000);var minute=parseInt(value%10000/100);var second=value%100;return IFrameSplitOperator.NumberToString(hour)+':'+IFrameSplitOperator.NumberToString(minute);}else if(format=='HH:MM'){var hour=parseInt(value/100);var minute=value%100;return IFrameSplitOperator.NumberToString(hour)+':'+IFrameSplitOperator.NumberToString(minute);}else if(format=="HH:MM:SS.fff"){var millisecond=value%1000;var dateTime=parseInt(value/1000);var hour=parseInt(dateTime/10000);var minute=parseInt(dateTime%10000/100);var second=dateTime%100;return IFrameSplitOperator.NumberToString(hour)+':'+IFrameSplitOperator.NumberToString(minute)+':'+IFrameSplitOperator.NumberToString(second)+'.'+IFrameSplitOperator.MillisecondToString(millisecond);}else{if(value<10000){var hour=parseInt(value/100);var minute=value%100;return IFrameSplitOperator.NumberToString(hour)+':'+IFrameSplitOperator.NumberToString(minute);}else{var hour=parseInt(value/10000);var minute=parseInt(value%10000/100);var second=value%100;return IFrameSplitOperator.NumberToString(hour)+':'+IFrameSplitOperator.NumberToString(minute)+':'+IFrameSplitOperator.NumberToString(second);}}};//报告格式化
5530
- IFrameSplitOperator.FormatReportDateString=function(value){var year=parseInt(value/10000);var month=parseInt(value/100)%100;var monthText;switch(month){case 3:monthText="一季度报";break;case 6:monthText="半年报";break;case 9:monthText="三季度报";break;case 12:monthText="年报";break;}return year.toString()+monthText;};IFrameSplitOperator.FormatDateTimeString=function(value,isShowDate,isShowTime){var aryValue=value.split(' ');if(aryValue.length<2)return"";var result="";if(isShowDate){var date=parseInt(aryValue[0]);var year=parseInt(date/10000);var month=parseInt(date%10000/100);var day=date%100;var text=year.toString()+'-'+(month<10?'0'+month.toString():month.toString())+'-'+(day<10?'0'+day.toString():day.toString());result+=text;}if(isShowTime){var time=parseInt(aryValue[1]);if(time<10000){var minute=time%100;var hour=parseInt(time/100);var text=IFrameSplitOperator.NumberToString(hour)+':'+IFrameSplitOperator.NumberToString(minute);if(result.length>0)result+=" ";result+=text;}else{var hour=parseInt(time/10000);var minute=parseInt(time%10000/100);var second=time%100;var text=IFrameSplitOperator.NumberToString(hour)+':'+IFrameSplitOperator.NumberToString(minute)+':'+IFrameSplitOperator.NumberToString(second);if(result.length>0)result+=" ";result+=text;}}return result;};IFrameSplitOperator.FormatDateTimeStringV2=function(datetime,format,languageID){if(!datetime)return null;switch(format){case"YYYY-MM-DD":return datetime.getFullYear()+'-'+IFrameSplitOperator.NumberToString(datetime.getMonth()+1)+'-'+IFrameSplitOperator.NumberToString(datetime.getDate());case'MM-DD':return IFrameSplitOperator.NumberToString(datetime.getMonth()+1)+'-'+IFrameSplitOperator.NumberToString(datetime.getDate());case"MM/DD":return IFrameSplitOperator.NumberToString(datetime.getMonth()+1)+'/'+IFrameSplitOperator.NumberToString(datetime.getDate());case"YYYY-MM":return datetime.getFullYear()+'-'+IFrameSplitOperator.NumberToString(datetime.getMonth()+1);case"YYYY/MM/DD":return datetime.getFullYear()+'/'+IFrameSplitOperator.NumberToString(datetime.getMonth()+1)+'/'+IFrameSplitOperator.NumberToString(datetime.getDate());case"DD/MM/YYYY":return IFrameSplitOperator.NumberToString(datetime.getDate())+'/'+IFrameSplitOperator.NumberToString(datetime.getMonth()+1)+'/'+datetime.getFullYear();case"HH:MM:SS":return IFrameSplitOperator.NumberToString(datetime.getHours())+':'+IFrameSplitOperator.NumberToString(datetime.getMinutes())+':'+IFrameSplitOperator.NumberToString(datetime.getSeconds());case"HH:MM":return IFrameSplitOperator.NumberToString(datetime.getHours())+':'+IFrameSplitOperator.NumberToString(datetime.getMinutes());case"HH:MM:SS.fff":return IFrameSplitOperator.NumberToString(datetime.getHours())+':'+IFrameSplitOperator.NumberToString(datetime.getMinutes())+':'+IFrameSplitOperator.NumberToString(datetime.getSeconds())+'.'+IFrameSplitOperator.MillisecondToString(datetime.getMilliseconds());default:return null;}};//字段颜色格式化
5530
+ IFrameSplitOperator.FormatReportDateString=function(value){var year=parseInt(value/10000);var month=parseInt(value/100)%100;var monthText;switch(month){case 3:monthText="一季度报";break;case 6:monthText="半年报";break;case 9:monthText="三季度报";break;case 12:monthText="年报";break;}return year.toString()+monthText;};IFrameSplitOperator.FormatDateTimeString=function(value,isShowDate,isShowTime){var aryValue=value.split(' ');if(aryValue.length<2)return"";var result="";if(isShowDate){var date=parseInt(aryValue[0]);var year=parseInt(date/10000);var month=parseInt(date%10000/100);var day=date%100;var text=year.toString()+'-'+(month<10?'0'+month.toString():month.toString())+'-'+(day<10?'0'+day.toString():day.toString());result+=text;}if(isShowTime){var time=parseInt(aryValue[1]);if(time<10000){var minute=time%100;var hour=parseInt(time/100);var text=IFrameSplitOperator.NumberToString(hour)+':'+IFrameSplitOperator.NumberToString(minute);if(result.length>0)result+=" ";result+=text;}else{var hour=parseInt(time/10000);var minute=parseInt(time%10000/100);var second=time%100;var text=IFrameSplitOperator.NumberToString(hour)+':'+IFrameSplitOperator.NumberToString(minute)+':'+IFrameSplitOperator.NumberToString(second);if(result.length>0)result+=" ";result+=text;}}return result;};IFrameSplitOperator.FormatDateTimeStringV2=function(datetime,format,languageID){if(!datetime)return null;switch(format){case"YYYY-MM-DD":return datetime.getFullYear()+'-'+IFrameSplitOperator.NumberToString(datetime.getMonth()+1)+'-'+IFrameSplitOperator.NumberToString(datetime.getDate());case'MM-DD':return IFrameSplitOperator.NumberToString(datetime.getMonth()+1)+'-'+IFrameSplitOperator.NumberToString(datetime.getDate());case"MM/DD":return IFrameSplitOperator.NumberToString(datetime.getMonth()+1)+'/'+IFrameSplitOperator.NumberToString(datetime.getDate());case"YYYY-MM":return datetime.getFullYear()+'-'+IFrameSplitOperator.NumberToString(datetime.getMonth()+1);case"YYYY/MM/DD":return datetime.getFullYear()+'/'+IFrameSplitOperator.NumberToString(datetime.getMonth()+1)+'/'+IFrameSplitOperator.NumberToString(datetime.getDate());case"DD/MM/YYYY":return IFrameSplitOperator.NumberToString(datetime.getDate())+'/'+IFrameSplitOperator.NumberToString(datetime.getMonth()+1)+'/'+datetime.getFullYear();case"HH:MM:SS":return IFrameSplitOperator.NumberToString(datetime.getHours())+':'+IFrameSplitOperator.NumberToString(datetime.getMinutes())+':'+IFrameSplitOperator.NumberToString(datetime.getSeconds());case"HH:MM":return IFrameSplitOperator.NumberToString(datetime.getHours())+':'+IFrameSplitOperator.NumberToString(datetime.getMinutes());case"HH:MM:SS.fff":return IFrameSplitOperator.NumberToString(datetime.getHours())+':'+IFrameSplitOperator.NumberToString(datetime.getMinutes())+':'+IFrameSplitOperator.NumberToString(datetime.getSeconds())+'.'+IFrameSplitOperator.MillisecondToString(datetime.getMilliseconds());case"YYYY-MM-DD HH:MM":return datetime.getFullYear()+'-'+IFrameSplitOperator.NumberToString(datetime.getMonth()+1)+'-'+IFrameSplitOperator.NumberToString(datetime.getDate())+' '+IFrameSplitOperator.NumberToString(datetime.getHours())+':'+IFrameSplitOperator.NumberToString(datetime.getMinutes());case"MM-DD HH:MM":return IFrameSplitOperator.NumberToString(datetime.getMonth()+1)+'-'+IFrameSplitOperator.NumberToString(datetime.getDate())+' '+IFrameSplitOperator.NumberToString(datetime.getHours())+':'+IFrameSplitOperator.NumberToString(datetime.getMinutes());default:return null;}};//字段颜色格式化
5531
5531
  IFrameSplitOperator.FormatValueColor=function(value,value2){if(value!=null&&value2==null)//只传一个值的 就判断value正负
5532
5532
  {if(value==0)return'PriceNull';else if(value>0)return'PriceUp';else return'PriceDown';}//2个数值对比 返回颜色
5533
5533
  if(value==null||value2==null)return'PriceNull';if(value==value2)return'PriceNull';else if(value>value2)return'PriceUp';else return'PriceDown';};IFrameSplitOperator.IsNumber=function(value){if(value==null)return false;if(isNaN(value))return false;return typeof value=='number';};//批量判断是否是数值类型
5534
5534
  IFrameSplitOperator.IsNumberV2=function(){for(var _len=arguments.length,aryValue=Array(_len),_key=0;_key<_len;_key++){aryValue[_key]=arguments[_key];}if(!aryValue)return false;if(aryValue.length==0)return false;var _iteratorNormalCompletion11=true;var _didIteratorError11=false;var _iteratorError11=undefined;try{for(var _iterator11=(0,_getIterator3.default)(aryValue),_step11;!(_iteratorNormalCompletion11=(_step11=_iterator11.next()).done);_iteratorNormalCompletion11=true){var _value=_step11.value;if(_value==null)return false;if(isNaN(_value))return false;if(typeof _value!='number')return false;}}catch(err){_didIteratorError11=true;_iteratorError11=err;}finally{try{if(!_iteratorNormalCompletion11&&_iterator11.return){_iterator11.return();}}finally{if(_didIteratorError11){throw _iteratorError11;}}}return true;};//判断是否是正数
5535
- IFrameSplitOperator.IsPlusNumber=function(value){if(value==null)return false;if(isNaN(value))return false;return value>0;};//是否是整形
5535
+ IFrameSplitOperator.IsPlusNumber=function(value){if(value==null)return false;if(isNaN(value))return false;return value>0;};//>=0
5536
+ IFrameSplitOperator.IsGTEZero=function(value){if(value==null)return false;if(isNaN(value))return false;return value>=0;};//是否是整形
5536
5537
  IFrameSplitOperator.IsInteger=function(x){return typeof x==='number'&&x%1===0;};//判断字段是否存在
5537
5538
  IFrameSplitOperator.IsObjectExist=function(obj){if(obj===undefined)return false;if(obj==null)return false;return true;};//是否时bool
5538
5539
  IFrameSplitOperator.IsBool=function(value){if(value===true||value===false)return true;return false;};IFrameSplitOperator.IsString=function(value){var type=typeof value==='undefined'?'undefined':(0,_typeof3.default)(value);if(type=='string')return true;return false;};//是否是非空的数组
@@ -13789,7 +13790,9 @@ this.Column=[{Type:REPORT_COLUMN_ID.INDEX_ID,Title:"序号",TextAlign:"center",W
13789
13790
  //Type:1=数据截断 2=表头提示信息 4=提示信息 20=分时图 21=K线
13790
13791
  // { Text, Color, Title:, TitleColor, Space, Margin:{ Left, Top, Right, Bottom }}
13791
13792
  this.TooltipRect=[];//{ Rect:rtItem, Type: 0=checkedbox, 1=button, 2=link , Stock, Index:index, Column:column }
13792
- this.ButtonRect=[];this.LastMouseStatus;this.ReloadResource=function(resource){this.DevicePixelRatio=GetDevicePixelRatio();this.UpColor=g_JSChartResource.Report.UpTextColor;this.DownColor=g_JSChartResource.Report.DownTextColor;this.UnchagneColor=g_JSChartResource.Report.UnchagneTextColor;this.BorderColor=g_JSChartResource.Report.BorderColor;//边框线
13793
+ this.ButtonRect=[];this.LastMouseStatus;//绘图过程中的缓存数据 绘制完清空的
13794
+ this.TempCache=null;//
13795
+ this.ReloadResource=function(resource){this.DevicePixelRatio=GetDevicePixelRatio();this.UpColor=g_JSChartResource.Report.UpTextColor;this.DownColor=g_JSChartResource.Report.DownTextColor;this.UnchagneColor=g_JSChartResource.Report.UnchagneTextColor;this.BorderColor=g_JSChartResource.Report.BorderColor;//边框线
13793
13796
  this.SelectedColor=g_JSChartResource.Report.SelectedColor;//选中行
13794
13797
  //表头配置
13795
13798
  this.HeaderFontConfig={Size:g_JSChartResource.Report.Header.Font.Size,Name:g_JSChartResource.Report.Header.Font.Name};this.HeaderColor=g_JSChartResource.Report.Header.Color;this.HeaderMergin={Left:g_JSChartResource.Report.Header.Mergin.Left,Right:g_JSChartResource.Report.Header.Mergin.Right,Top:g_JSChartResource.Report.Header.Mergin.Top,Bottom:g_JSChartResource.Report.Header.Mergin.Bottom};//表格内容配置
@@ -13820,13 +13823,14 @@ if(IFrameSplitOperator.IsNumber(item.BlockIndex))colItem.BlockIndex=item.BlockIn
13820
13823
  if(IFrameSplitOperator.IsNumber(item.BlockIndex))colItem.BlockIndex=item.BlockIndex;if(item.Button)colItem.Button=CloneData(item.Button);else colItem.Button=this.ButtonConfig;}else if(this.IsReserveButtonColumn(item.Type)){if(item.Button)colItem.Button=CloneData(item.Button);else colItem.Button=this.ButtonConfig;}else if(this.IsReserveNumber(item.Type)){if(item.Format)colItem.Format=item.Format;//数据格式化设置{ Type:1=原始 2=千分位分割 3=万亿转换, ExFloatPrecision:万亿转换以后的小数位数 }
13821
13824
  if(item.StringFormat)colItem.StringFormat=item.StringFormat;//"{0}%" 输出增加固定字符
13822
13825
  }else if(this.IsReserveDateTime(item.Type)){if(item.DateTimeFormat)colItem.DateTimeFormat=item.DateTimeFormat;//日期格式化
13823
- }else if(item.Type==REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID){if(!IFrameSplitOperator.IsNumber(item.DataIndex)&&!IFrameSplitOperator.IsNumber(item.BlockIndex))return null;if(IFrameSplitOperator.IsNumber(item.DataIndex))colItem.DataIndex=item.DataIndex;//数据在扩展数据索引列
13826
+ if(item.SubDateTimeFormat)colItem.SubDateTimeFormat=item.SubDateTimeFormat;}else if(item.Type==REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID){if(!IFrameSplitOperator.IsNumber(item.DataIndex)&&!IFrameSplitOperator.IsNumber(item.BlockIndex))return null;if(IFrameSplitOperator.IsNumber(item.DataIndex))colItem.DataIndex=item.DataIndex;//数据在扩展数据索引列
13824
13827
  if(IFrameSplitOperator.IsNumber(item.BlockIndex))colItem.BlockIndex=item.BlockIndex;if(item.ProgressBar)colItem.ProgressBar=CloneData(item.ProgressBar);else colItem.ProgressBar=this.ProgressBarConfig;}else if(this.IsReserveProgressBarColumn(item.Type)){if(item.ProgressBar)colItem.ProgressBar=CloneData(item.ProgressBar);else colItem.ProgressBar=this.ProgressBarConfig;}else if(item.Type==REPORT_COLUMN_ID.CUSTOM_LINK_ID){if(!IFrameSplitOperator.IsNumber(item.DataIndex)&&!IFrameSplitOperator.IsNumber(item.BlockIndex))return null;if(IFrameSplitOperator.IsNumber(item.DataIndex))colItem.DataIndex=item.DataIndex;//数据在扩展数据索引列
13825
13828
  if(IFrameSplitOperator.IsNumber(item.BlockIndex))colItem.BlockIndex=item.BlockIndex;if(item.Link)colItem.Link=CloneData(item.Link);else colItem.Link=this.LinkConfig;}else if(item.Type==REPORT_COLUMN_ID.CUSTOM_ICON_ID){}else if(item.Type==REPORT_COLUMN_ID.CLOSE_LINE_ID){if(IFrameSplitOperator.IsBool(item.IsDrawArea))colItem.IsDrawArea=item.IsDrawArea;}else if(item.Type==REPORT_COLUMN_ID.TIME_ID){if(IFrameSplitOperator.IsNumber(item.ValueType))colItem.ValueType=item.ValueType;}else if(item.Type==REPORT_COLUMN_ID.DATE_ID){if(IFrameSplitOperator.IsNumber(item.FormatType))colItem.FormatType=item.FormatType;}else if(item.Type==REPORT_COLUMN_ID.MULTI_LINE_CONTAINER){if(IFrameSplitOperator.IsNonEmptyArray(item.AryField))colItem.AryField=item.AryField.slice();}return colItem;};this.SetColumn=function(aryColumn){if(!IFrameSplitOperator.IsNonEmptyArray(aryColumn))return;this.Column=[];for(var i=0;i<aryColumn.length;++i){var item=aryColumn[i];var colItem=this.CreateColumnItem(item);if(!colItem)continue;this.Column.push(colItem);}};this.SwapColumn=function(leftIndex,rightIndex){if(!IFrameSplitOperator.IsNumber(leftIndex)||!IFrameSplitOperator.IsNumber(rightIndex))return false;var count=this.Column.length;if(leftIndex<0||leftIndex>=count)return false;if(rightIndex<0||rightIndex>=count)return false;if(leftIndex==rightIndex)return;var tempItem=this.Column[leftIndex];this.Column[leftIndex]=this.Column[rightIndex];this.Column[rightIndex]=tempItem;return true;};this.DeleteColumn=function(index){if(!IFrameSplitOperator.IsNonEmptyArray(this.Column))return false;if(index<0||index>=this.Column.length)return false;this.Column.splice(index,1);return true;};this.ChangeColumn=function(index,newColumn){if(index<0||index>=this.Column.length)return false;var colItem=this.CreateColumnItem(newColumn);if(!colItem)return false;this.Column[index]=colItem;return true;};this.GetXScrollPos=function(){return this.Data.XOffset;};this.GetXScrollRange=function(){var maxOffset=this.Column.length-this.FixedColumn-3;if(maxOffset<0)return 0;return maxOffset;};this.GetYScrollRange=function(){if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return 0;var dataCount=this.GetAllRowCount();var maxOffset=dataCount-this.RowCount;return maxOffset;};this.GetDefaultColunm=function(id){var DEFAULT_COLUMN=[{Type:REPORT_COLUMN_ID.INDEX_ID,Title:"序号",TextAlign:"center",Width:null,TextColor:g_JSChartResource.Report.FieldColor.Index,MaxText:"8888"},{Type:REPORT_COLUMN_ID.SYMBOL_ID,Title:"代码",TextAlign:"left",Width:null,TextColor:g_JSChartResource.Report.FieldColor.Symbol,MaxText:"888888"},{Type:REPORT_COLUMN_ID.NAME_ID,Title:"名称",TextAlign:"left",Width:null,TextColor:g_JSChartResource.Report.FieldColor.Name,MaxText:"擎擎擎擎0"},{Type:REPORT_COLUMN_ID.NAME_EX_ID,Title:"名称",TextAlign:"left",Width:null,TextColor:g_JSChartResource.Report.FieldColor.Name,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.SYMBOL_NAME_ID,Title:"股票名称",TextAlign:"left",Width:null,TextColor:g_JSChartResource.Report.FieldColor.Name,MaxText:"擎擎擎擎0"},{Type:REPORT_COLUMN_ID.SYMBOL_NAME_V2_ID,Title:"名称/代码",TextAlign:"left",Width:null,TextColor:g_JSChartResource.Report.NameSymbolV2.Name.Color,MaxText:"擎擎擎擎*",MaxText2:"999999",Space:5,TextColor2:g_JSChartResource.Report.NameSymbolV2.Symbol.Color},{Type:REPORT_COLUMN_ID.INCREASE_ID,Title:"涨幅%",TextAlign:"right",Width:null,MaxText:"-888.88"},{Type:REPORT_COLUMN_ID.PRICE_ID,Title:"现价",TextAlign:"right",Width:null,MaxText:"88888.88"},{Type:REPORT_COLUMN_ID.UPDOWN_ID,Title:"涨跌",TextAlign:"right",Width:null,MaxText:"-888.88"},{Type:REPORT_COLUMN_ID.AMPLITUDE_ID,Title:"振幅%",TextAlign:"right",Width:null,MaxText:"888.88"},{Type:REPORT_COLUMN_ID.BUY_PRICE_ID,Title:"买价",TextAlign:"right",Width:null,MaxText:"88888.88"},{Type:REPORT_COLUMN_ID.SELL_PRICE_ID,Title:"卖价",TextAlign:"right",Width:null,MaxText:"88888.88"},{Type:REPORT_COLUMN_ID.AVERAGE_PRICE_ID,Title:"均价",TextAlign:"right",Width:null,MaxText:"88888.88"},{Type:REPORT_COLUMN_ID.OPEN_ID,Title:"今开",TextAlign:"right",Width:null,MaxText:"88888.88"},{Type:REPORT_COLUMN_ID.HIGH_ID,Title:"最高",TextAlign:"right",Width:null,MaxText:"88888.88"},{Type:REPORT_COLUMN_ID.LOW_ID,Title:"最低",TextAlign:"right",Width:null,MaxText:"88888.88"},{Type:REPORT_COLUMN_ID.YCLOSE_ID,Title:"昨收",TextAlign:"right",Width:null,MaxText:"88888.88"},{Type:REPORT_COLUMN_ID.VOL_ID,Title:"总量",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Vol,Width:null,MaxText:"8888.8擎"},{Type:REPORT_COLUMN_ID.AMOUNT_ID,Title:"总金额",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Amount,Width:null,MaxText:"8888.8擎"},{Type:REPORT_COLUMN_ID.EXCHANGE_RATE_ID,Title:"换手%",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,Width:null,MaxText:"88.88擎"},{Type:REPORT_COLUMN_ID.OUTSTANDING_SHARES_ID,Title:"流通股本",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,Width:null,MaxText:"8888.8擎"},{Type:REPORT_COLUMN_ID.TOTAL_SHARES_ID,Title:"总股本",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,Width:null,MaxText:"8888.8擎"},{Type:REPORT_COLUMN_ID.CIRC_MARKET_VALUE_ID,Title:"流通市值",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,Width:null,MaxText:"8888.8擎"},{Type:REPORT_COLUMN_ID.MARKET_VALUE_ID,Title:"总市值",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,Width:null,MaxText:"8888.8擎"},{Type:REPORT_COLUMN_ID.VOL_IN_ID,Title:"内盘",TextAlign:"right",TextColor:g_JSChartResource.Report.DownTextColor,Width:null,MaxText:"8888.8擎"},{Type:REPORT_COLUMN_ID.VOL_OUT_ID,Title:"外盘",TextAlign:"right",TextColor:g_JSChartResource.Report.UpTextColor,Width:null,MaxText:"8888.8擎"},{Type:REPORT_COLUMN_ID.CLOSE_LINE_ID,Title:"走势",TextAlign:"center",TextColor:g_JSChartResource.Report.CloseLineColor,Width:null,MaxText:"88888.88888"},{Type:REPORT_COLUMN_ID.BUY_VOL_ID,Title:"买量",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Vol,Width:null,MaxText:"8888.8擎"},{Type:REPORT_COLUMN_ID.SELL_VOL_ID,Title:"卖量",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Vol,Width:null,MaxText:"8888.8擎"},//{ Type:REPORT_COLUMN_ID.MULTI_BAR_ID, Title:"柱子", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
13826
13829
  //{ Type:REPORT_COLUMN_ID.CENTER_BAR_ID, Title:"柱子2", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
13827
13830
  {Type:REPORT_COLUMN_ID.CUSTOM_STRING_TEXT_ID,Title:"自定义",TextAlign:"center",Width:null,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.CUSTOM_NUMBER_TEXT_ID,Title:"自定义",TextAlign:"center",Width:null,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.CUSTOM_DATETIME_TEXT_ID,Title:"自定义",TextAlign:"center",Width:null,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99"},{Type:REPORT_COLUMN_ID.CUSTOM_ICON_ID,Title:" ",TextAlign:"left",FixedWidth:20,TextColor:g_JSChartResource.Report.FieldColor.Text},{Type:REPORT_COLUMN_ID.KLINE_ID,Title:"K线",TextAlign:"left",FixedWidth:50,TextColor:g_JSChartResource.Report.FieldColor.Text},{Type:REPORT_COLUMN_ID.TIME_ID,Title:"时间",TextAlign:"left",ValueType:0,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"99:99:99.999"},{Type:REPORT_COLUMN_ID.DATE_ID,Title:"日期",TextAlign:"left",FormatType:0,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99"},{Type:REPORT_COLUMN_ID.CHECKBOX_ID,Title:"",TextAlign:"center",FixedWidth:20*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.CUSTOM_CHECKBOX_ID,Title:"",TextAlign:"center",FixedWidth:20*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.CUSTOM_BUTTON_ID,Title:"",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID,Title:"进度条",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.CUSTOM_LINK_ID,Title:"链接地址",TextAlign:"center",MaxText:"擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.FUTURES_POSITION_ID,Title:"持仓量",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Vol,Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.FUTURES_CLOSE_ID,Title:"结算价",TextAlign:"right",Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.FUTURES_YCLOSE_ID,Title:"昨结算价",TextAlign:"right",Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.FUTURES_OPEN_POSITION_ID,Title:"开仓量",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.FUTURES_CLOSE_POSITION_ID,Title:"平仓量",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.RISING_SPEED_1M_ID,Title:"涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},{Type:REPORT_COLUMN_ID.RISING_SPEED_3M_ID,Title:"3分涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},{Type:REPORT_COLUMN_ID.RISING_SPEED_5M_ID,Title:"5分涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},{Type:REPORT_COLUMN_ID.RISING_SPEED_10M_ID,Title:"10分涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},{Type:REPORT_COLUMN_ID.RISING_SPEED_15M_ID,Title:"15分涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},//组合多行字段
13828
13831
  {Type:REPORT_COLUMN_ID.MULTI_LINE_CONTAINER,Title:"涨幅",TextAlign:"right",MaxText:"1000.00%",AryField:[{Type:REPORT_COLUMN_ID.PRICE_ID},{Type:REPORT_COLUMN_ID.INCREASE_ID,DynamicFormat:"{Value}%"}]},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER1_ID,Title:"数值1",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER2_ID,Title:"数值2",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER3_ID,Title:"数值3",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER4_ID,Title:"数值4",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER5_ID,Title:"数值5",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER6_ID,Title:"数值6",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER7_ID,Title:"数值7",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER8_ID,Title:"数值8",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER9_ID,Title:"数值9",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER10_ID,Title:"数值10",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER11_ID,Title:"数值11",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER12_ID,Title:"数值12",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER13_ID,Title:"数值13",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER14_ID,Title:"数值14",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER15_ID,Title:"数值15",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER16_ID,Title:"数值16",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER17_ID,Title:"数值17",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER18_ID,Title:"数值18",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER19_ID,Title:"数值19",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER20_ID,Title:"数值20",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_STRING1_ID,Title:"文字1",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING2_ID,Title:"文字2",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING3_ID,Title:"文字3",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING4_ID,Title:"文字4",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING5_ID,Title:"文字5",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING6_ID,Title:"文字6",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING7_ID,Title:"文字7",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING8_ID,Title:"文字8",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING9_ID,Title:"文字9",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING10_ID,Title:"文字10",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR1_ID,Title:"进度条1",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR2_ID,Title:"进度条2",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR3_ID,Title:"进度条3",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR4_ID,Title:"进度条4",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR5_ID,Title:"进度条5",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR6_ID,Title:"进度条6",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR7_ID,Title:"进度条7",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR8_ID,Title:"进度条8",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR9_ID,Title:"进度条9",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR10_ID,Title:"进度条10",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON1_ID,Title:"按钮1",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON2_ID,Title:"按钮2",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON3_ID,Title:"按钮3",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON4_ID,Title:"按钮4",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON5_ID,Title:"按钮5",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON6_ID,Title:"按钮6",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON7_ID,Title:"按钮7",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON8_ID,Title:"按钮8",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON9_ID,Title:"按钮9",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON10_ID,Title:"按钮10",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME1_ID,Title:"日期1",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME2_ID,Title:"日期2",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME3_ID,Title:"日期3",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME4_ID,Title:"日期4",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME5_ID,Title:"日期5",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME6_ID,Title:"日期6",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME7_ID,Title:"日期7",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME8_ID,Title:"日期8",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME9_ID,Title:"日期9",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME10_ID,Title:"日期10",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"}];for(var i=0;i<DEFAULT_COLUMN.length;++i){var item=DEFAULT_COLUMN[i];if(item.Type==id)return item;}return null;};this.ClipClient=function(){this.Canvas.save();this.Canvas.beginPath();this.Canvas.rect(this.RectClient.Left,this.RectClient.Top,this.RectClient.Right-this.RectClient.Left,this.RectClient.Bottom-this.RectClient.Top);//this.Canvas.stroke(); //调试用
13829
- this.Canvas.clip();};this.Draw=function(lastMouseStatus){this.ShowSymbol=[];this.TooltipRect=[];this.ButtonRect=[];this.AryFullSelectedRow=[];this.DevicePixelRatio=GetDevicePixelRatio();this.LastMouseStatus=lastMouseStatus;if(this.GlobalOption)this.GlobalOption.FlashBGCount=0;if(this.SizeChange)this.CalculateSize();else this.UpdateCacheData();this.ClipClient();this.DrawDragHeaderBG();this.DrawHeader();this.DrawBody();this.Canvas.restore();if(this.Tab&&this.BottomToolbarHeight>0){var bottom=this.ChartBorder.GetBottom();this.Tab.DrawTab(this.RectClient.Left,bottom-this.BottomToolbarHeight,this.RectClient.Right,bottom);this.Tab.DrawScrollbar(this.RectClient.Left,bottom-this.BottomToolbarHeight,this.RectClient.Right,bottom);}this.ClipClient();this.DrawBorder();this.DrawSelectedRow();this.Canvas.restore();this.DrawDragRow();this.DrawDragHeader();if(this.VScrollbar){var bottom=this.ChartBorder.GetBottom();this.VScrollbar.DrawScrollbar(this.RectClient.Left,this.RectClient.Top+this.HeaderHeight,this.RectClient.Right,bottom-this.BottomToolbarHeight-4);}this.LastMouseStatus=null;this.SizeChange=false;this.AryFullSelectedRow=[];};this.DrawDragHeaderBG=function(){if(!this.DragHeader)return;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=top+this.HeaderHeight+this.RowHeight*this.RowCount+this.FixedRowHeight*this.FixedRowCount;//竖线
13832
+ this.Canvas.clip();};this.CreateTempCache=function(){this.TempCache={MapReserveDateTime:new _map2.default()};//MapReserveDateTime:key=colindex, Value:{ PreDate }
13833
+ };this.Draw=function(lastMouseStatus){this.ShowSymbol=[];this.TooltipRect=[];this.ButtonRect=[];this.AryFullSelectedRow=[];this.DevicePixelRatio=GetDevicePixelRatio();this.LastMouseStatus=lastMouseStatus;this.CreateTempCache();if(this.GlobalOption)this.GlobalOption.FlashBGCount=0;if(this.SizeChange)this.CalculateSize();else this.UpdateCacheData();this.ClipClient();this.DrawDragHeaderBG();this.DrawHeader();this.DrawBody();this.Canvas.restore();if(this.Tab&&this.BottomToolbarHeight>0){var bottom=this.ChartBorder.GetBottom();this.Tab.DrawTab(this.RectClient.Left,bottom-this.BottomToolbarHeight,this.RectClient.Right,bottom);this.Tab.DrawScrollbar(this.RectClient.Left,bottom-this.BottomToolbarHeight,this.RectClient.Right,bottom);}this.ClipClient();this.DrawBorder();this.DrawSelectedRow();this.Canvas.restore();this.DrawDragRow();this.DrawDragHeader();if(this.VScrollbar){var bottom=this.ChartBorder.GetBottom();this.VScrollbar.DrawScrollbar(this.RectClient.Left,this.RectClient.Top+this.HeaderHeight,this.RectClient.Right,bottom-this.BottomToolbarHeight-4);}this.LastMouseStatus=null;this.SizeChange=false;this.AryFullSelectedRow=[];this.TempCache=null;};this.DrawDragHeaderBG=function(){if(!this.DragHeader)return;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=top+this.HeaderHeight+this.RowHeight*this.RowCount+this.FixedRowHeight*this.FixedRowCount;//竖线
13830
13834
  var columnLeft=left;for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];columnLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];if(this.DragHeader){if(this.DragHeader.ClickData){var clickData=this.DragHeader.ClickData;if(clickData.Header.Index==i){var rtBG={Left:columnLeft,Top:top,Bottom:bottom,Right:columnLeft+item.Width};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;this.Canvas.fillStyle=this.DragSrcRowColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}}if(this.DragHeader.MoveToData){var moveToData=this.DragHeader.MoveToData;if(moveToData.Header.Index==i){var rtBG={Left:columnLeft,Top:top,Bottom:bottom,Right:columnLeft+item.Width};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;this.Canvas.fillStyle=this.DragMoveRowColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}}}columnLeft+=item.Width;}};//更新缓存变量
13831
13835
  this.UpdateCacheData=function(){this.RectClient.Left=this.ChartBorder.GetLeft();this.RectClient.Right=this.ChartBorder.GetRight();this.RectClient.Top=this.ChartBorder.GetTop();this.RectClient.Bottom=this.ChartBorder.GetBottom()-this.BottomToolbarHeight;};this.GetPageSize=function(recalculate)//recalculate 是否重新计算
13832
13836
  {if(recalculate)this.CalculateSize();var size=this.RowCount;return size;};this.GetCurrentPageStatus=function()//{ Start:起始索引, End:结束索引(数据), PageSize:页面可以显示几条记录, IsEnd:是否是最后一页, IsSinglePage:是否只有一页数据}
@@ -13883,7 +13887,7 @@ switch(column.ColorType){case 1:drawInfo.TextColor=this.GetUpDownColor(value,0);
13883
13887
  {this.GetCustomIconData(column,data.Symbol,drawInfo,data);return;}};this.GetCustomCheckBoxDrawInfo=function(data,column,drawInfo){var checkData=this.GetExtendData(data,column);if(!checkData)return;if(!IFrameSplitOperator.IsBool(checkData.Checked))return;drawInfo.Checked=checkData.Checked;drawInfo.Enable=true;drawInfo.Data=checkData;if(IFrameSplitOperator.IsBool(checkData.DisableCheckBox))drawInfo.Enable=!checkData.DisableCheckBox;drawInfo.CheckBox=column.CheckBox;};this.GetCustomButtonDrawInfo=function(data,column,drawInfo){var buttonData=this.GetExtendData(data,column);if(!buttonData)return;drawInfo.Text=buttonData.Title;drawInfo.Button=column.Button;drawInfo.Font=column.Button.Font;drawInfo.Enable=true;drawInfo.Data=buttonData;if(IFrameSplitOperator.IsBool(buttonData.Enable))drawInfo.Enable=buttonData.Enable;};this.GetCustomProgressBarDrawInfo=function(data,column,drawInfo){var barData=this.GetExtendData(data,column);if(!barData)return;drawInfo.Text=barData.Title;drawInfo.ProgressBar=column.ProgressBar;drawInfo.Enable=true;drawInfo.Value=barData.Value;//占比
13884
13888
  drawInfo.Data=barData;if(IFrameSplitOperator.IsBool(barData.Enable))drawInfo.Enable=barData.Enable;if(barData.TextColor)drawInfo.TextColor=barData.TextColor;if(barData.BarColor)drawInfo.BarColor=barData.BarColor;if(barData.BGColor)drawInfo.BGColor=barData.BGColor;};this.GetCustomLinkDrawInfo=function(data,column,drawInfo){var linkData=this.GetExtendData(data,column);if(!linkData)return;drawInfo.Text=linkData.Title;drawInfo.Link=column.Link;drawInfo.Enable=true;drawInfo.Data=linkData;drawInfo.MaxText=column.MaxText;if(IFrameSplitOperator.IsBool(linkData.Enable))drawInfo.Enable=linkData.Enable;if(linkData.TextColor)drawInfo.TextColor=linkData.TextColor;};this.FormatReserveNumber=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var value=data[fieldName];if(!IFrameSplitOperator.IsNumber(value))return;if(IFrameSplitOperator.IsNumber(column.ColorType)){if(column.ColorType==1){drawInfo.TextColor=this.GetUpDownColor(value,0);}else if(column.ColorType==2){drawInfo.TextColor=this.GetUpDownColorV2(value,0);}else if(column.ColorType==3){drawInfo.TextColor=this.GetUpDownColor(value,data.YClose);}}var text=value.toFixed(column.FloatPrecision);if(column.Format&&IFrameSplitOperator.IsNumber(column.Format.Type)){var format=column.Format;switch(format.Type){case 1://原始数据
13885
13889
  text=value.toFixed(column.FloatPrecision);break;case 2://千分位分割
13886
- text=IFrameSplitOperator.FormatValueThousandsString(value,column.FloatPrecision);break;case 3:var exfloatPrecision=1;if(IFrameSplitOperator.IsNumber(format.ExFloatPrecision))exfloatPrecision=format.ExFloatPrecision;text=IFrameSplitOperator.FormatValueStringV2(value,column.FloatPrecision,exfloatPrecision);break;}}if(column.StringFormat&&text){text=column.StringFormat.replace("{0}",text);}drawInfo.Text=text;};this.FormatReserveString=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(IFrameSplitOperator.IsObject(item)){if(item.Text)drawInfo.Text=item.Text;if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;if(item.Tooltip&&IFrameSplitOperator.IsNonEmptyArray(item.Tooltip.AryText)){drawInfo.Tooltip={Type:4,Data:{AryText:item.Tooltip.AryText,EnableCallback:item.Tooltip.EnableCallback}};}}else if(IFrameSplitOperator.IsString(item)){drawInfo.Text=item;}};this.FormatReserveDateTime=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(!IFrameSplitOperator.IsObject(item))return;if(item.DateTime)drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime,column.DateTimeFormat);if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;};this.FormatReserveProgressBar=function(column,data,drawInfo){var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(IFrameSplitOperator.IsNumber(item)){drawInfo.ProgressBar=column.ProgressBar;drawInfo.Enable=true;drawInfo.Value=item;//占比
13890
+ text=IFrameSplitOperator.FormatValueThousandsString(value,column.FloatPrecision);break;case 3:var exfloatPrecision=1;if(IFrameSplitOperator.IsNumber(format.ExFloatPrecision))exfloatPrecision=format.ExFloatPrecision;text=IFrameSplitOperator.FormatValueStringV2(value,column.FloatPrecision,exfloatPrecision);break;}}if(column.StringFormat&&text){text=column.StringFormat.replace("{0}",text);}drawInfo.Text=text;};this.FormatReserveString=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(IFrameSplitOperator.IsObject(item)){if(item.Text)drawInfo.Text=item.Text;if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;if(item.Tooltip&&IFrameSplitOperator.IsNonEmptyArray(item.Tooltip.AryText)){drawInfo.Tooltip={Type:4,Data:{AryText:item.Tooltip.AryText,EnableCallback:item.Tooltip.EnableCallback}};}}else if(IFrameSplitOperator.IsString(item)){drawInfo.Text=item;}};this.GetReserveDateTimePreItem=function(colIndex){if(!this.CreateTempCache)return null;if(!this.TempCache.MapReserveDateTime)return null;var mapData=this.TempCache.MapReserveDateTime;if(!mapData.has(colIndex))return null;return mapData.get(colIndex);};this.SetReserveDateTimePreItem=function(colIndex,data){if(!this.CreateTempCache)return false;if(!this.TempCache.MapReserveDateTime)return false;var mapData=this.TempCache.MapReserveDateTime;if(mapData.has(colIndex)){var item=mapData.get(colIndex);item.PreItem.Date=data.Date;}else{mapData.set(colIndex,{PreItem:{Date:data.Date}});}return true;};this.FormatReserveDateTime=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(!IFrameSplitOperator.IsObject(item))return;var cacheItem=this.GetReserveDateTimePreItem(drawInfo.ColumnIndex);if(item.DateTime){var date=item.DateTime.getFullYear()*10000+(item.DateTime.getMonth()+1)*100+item.DateTime.getDate();var format=column.DateTimeFormat;if(cacheItem&&cacheItem.PreItem&&date==cacheItem.PreItem.Date){if(column.SubDateTimeFormat)format=column.SubDateTimeFormat;}else{this.SetReserveDateTimePreItem(drawInfo.ColumnIndex,{Date:date});}drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime,format);}if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;};this.FormatReserveProgressBar=function(column,data,drawInfo){var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(IFrameSplitOperator.IsNumber(item)){drawInfo.ProgressBar=column.ProgressBar;drawInfo.Enable=true;drawInfo.Value=item;//占比
13887
13891
  drawInfo.Data={Value:item};}else if(IFrameSplitOperator.IsObject(item)){if(item.Title)drawInfo.Text=item.Title;drawInfo.ProgressBar=column.ProgressBar;drawInfo.Enable=true;drawInfo.Value=item.Value;//占比
13888
13892
  drawInfo.Data=item;if(IFrameSplitOperator.IsBool(item.Enable))drawInfo.Enable=item.Enable;if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BarColor)drawInfo.BarColor=item.BarColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;}};this.FormatReserveButton=function(column,data,drawInfo){var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(!item)return;drawInfo.Text=item.Title;drawInfo.Button=column.Button;drawInfo.Font=column.Button.Font;drawInfo.Enable=true;drawInfo.Data=item;if(IFrameSplitOperator.IsBool(item.Enable))drawInfo.Enable=item.Enable;};this.FormaTimeDrawInfo=function(column,stock,drawInfo,data){if(!IFrameSplitOperator.IsNumber(stock.Time))return;if(column.ValueType==0)//0=hhmm 1=hhmmss 2=hhmmss.fff
13889
13893
  {drawInfo.Text=IFrameSplitOperator.FormatTimeString(stock.Time,"HH:MM");}else if(column.ValueType==1){drawInfo.Text=IFrameSplitOperator.FormatTimeString(stock.Time,"HH:MM:SS");}else if(column.ValueType==2){drawInfo.Text=IFrameSplitOperator.FormatTimeString(stock.Time,"HH:MM:SS.fff");}};this.FormaDateDrawInfo=function(column,stock,drawInfo,data){if(!IFrameSplitOperator.IsNumber(stock.Date))return;if(column.FormatType==0)drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY-MM-DD");else if(column.FormatType==1)drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY/MM/DD");else if(column.FormatType==2)drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY/MM/DD/W");else if(column.FormatType==3)drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY-MM");else if(column.FormatType==4)drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"MM/DD");else if(column.FormatType==4)drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"MM-DD");};//自定义图标
@@ -15260,7 +15264,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
15260
15264
  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);};}/********************************************************************************
15261
15265
  * 版本信息输出
15262
15266
  *
15263
- */var HQCHART_VERSION="1.1.14981";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
15267
+ */var HQCHART_VERSION="1.1.14985";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
15264
15268
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
15265
15269
  // BaseIndex:BaseIndex,
15266
15270
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14982",
3
+ "version": "1.1.14986",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -57358,6 +57358,10 @@ HQData.Report_RequestStockData=function(data, callback)
57358
57358
 
57359
57359
  newItem[301]=HQData.GetRandomTestData(0,100)/100;
57360
57360
  newItem[302]=HQData.GetRandomTestData(0,100)/100;
57361
+
57362
+ var testDate=new Date();
57363
+ testDate.setHours(testDate.getHours() + i*2)
57364
+ newItem[401]={ DateTime:testDate } ;
57361
57365
 
57362
57366
 
57363
57367
  item.Data=newItem;
@@ -57513,6 +57517,9 @@ HQData.Report_RequestStockSortData=function(data, callback)
57513
57517
  extendData[7]=(Math.round(Math.random()*60))/100;
57514
57518
  extendData[8]=(Math.round(Math.random()*60))/100;
57515
57519
 
57520
+ var testDate=new Date();
57521
+ testDate.setHours(testDate.getHours() + i*2)
57522
+ newItem[401]={ DateTime:testDate } ;
57516
57523
 
57517
57524
  item.Data=newItem;
57518
57525
  }
@@ -58085,6 +58092,8 @@ HQData.Report_APIIndex=function(data, callback)
58085
58092
  HQData.APIIndex_MARK_AREA_V2(data, callback);
58086
58093
  else if (request.Data.indexname=="API_CHANNELV2")
58087
58094
  HQData.APIIndex_CHANNEL_V2(data, callback);
58095
+ else if (request.Data.indexname=="API_CHART_AREA_TEXT")
58096
+ HQData.API_CHART_AREA_TEXT(data, callback);
58088
58097
  }
58089
58098
 
58090
58099
 
@@ -59579,3 +59588,84 @@ HQData.APIIndex_MARK_AREA_V2=function(data, callback)
59579
59588
  }
59580
59589
 
59581
59590
 
59591
+ HQData.API_CHART_AREA_TEXT=function(data, callback)
59592
+ {
59593
+ data.PreventDefault=true;
59594
+ var hqchart=data.HQChart;
59595
+ var kData=hqchart.GetKData();
59596
+
59597
+ var markData=
59598
+ {
59599
+ name:'区域文字', type:1,
59600
+ Draw:
59601
+ {
59602
+ DrawType:'JS_CHART_AREA_TEXT',
59603
+ DrawData:
59604
+ {
59605
+ AryData:[], //[ { Start:{ }, End:{ }, AreaColor:, Text:"", BarColor:, TextColor:, ID: }]
59606
+ },
59607
+
59608
+ Config:{ },
59609
+ }
59610
+ };
59611
+
59612
+ var markItem=null;
59613
+ for(var i=0;i<kData.Data.length;++i)
59614
+ {
59615
+ var kItem=kData.Data[i];
59616
+ if (!markItem)
59617
+ {
59618
+ markItem=
59619
+ {
59620
+ Start:{ Date:kItem.Date, Time:kItem.Time },
59621
+ End:{ Date:kItem.Date, Time:kItem.Time },
59622
+ BGColor:"rgba(186,85,211,0.5)",
59623
+ TextColor:"rgb(255,215,0)",
59624
+ ID:i,
59625
+ Count:1,
59626
+ AryText:
59627
+ [
59628
+ {
59629
+ AryText:
59630
+ [
59631
+ { Text:`日期: ${kItem.Date} `, Color:"rgb(220,220,220)"},
59632
+ { Text:`ID: ${i} `, Color:"rgb(255,165,0)" }
59633
+ ],
59634
+ },
59635
+ {
59636
+ AryText:
59637
+ [
59638
+ { Text:`数据1: -- `, Color:"rgb(30,144,255)"},
59639
+ { Text:`数据2: -- `, Color:"rgb(255,0,255)" }
59640
+ ],
59641
+ }
59642
+ ]
59643
+ }
59644
+ }
59645
+ else
59646
+ {
59647
+ markItem.End.Date=kItem.Date;
59648
+ markItem.End.Time=kItem.Time;
59649
+ markItem.Count++;
59650
+
59651
+ if (markItem.Count>150)
59652
+ {
59653
+ markData.Draw.DrawData.AryData.push(markItem);
59654
+ markItem=null;
59655
+ }
59656
+ }
59657
+
59658
+ }
59659
+
59660
+ var apiData=
59661
+ {
59662
+ code:0,
59663
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
59664
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[markData] }
59665
+ };
59666
+
59667
+ console.log('[HQData.API_CHART_AREA_TEXT] apiData ', apiData);
59668
+ callback(apiData);
59669
+ }
59670
+
59671
+
@@ -8290,18 +8290,18 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8290
8290
  }
8291
8291
  else
8292
8292
  {
8293
- var pt={X:null, Y:null};
8293
+ var pt={ X:null, Y:null };
8294
8294
  pt.X=this.Frame.GetXFromIndex(this.CursorIndex);
8295
8295
  var index=this.CursorIndex;
8296
8296
  var data=this.GetKData();
8297
- if (data.DataOffset+index<data.Data.length)
8297
+ if (IFrameSplitOperator.IsGTEZero(index) && data.DataOffset+index<data.Data.length)
8298
8298
  {
8299
8299
  var close=data.Data[data.DataOffset+index].Close;
8300
8300
  pt.Y=this.Frame.GetYFromData(close);
8301
+ this.LastPoint.FrameID=0;
8301
8302
  }
8302
8303
  this.LastPoint.X=pt.X;
8303
8304
  this.LastPoint.Y=pt.Y;
8304
- this.LastPoint.FrameID=0;
8305
8305
  }
8306
8306
  }
8307
8307
 
@@ -54295,6 +54295,12 @@ IFrameSplitOperator.FormatDateTimeStringV2=function(datetime, format, languageID
54295
54295
  return `${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
54296
54296
  case "HH:MM:SS.fff":
54297
54297
  return `${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}:${IFrameSplitOperator.NumberToString(datetime.getSeconds())}.${IFrameSplitOperator.MillisecondToString(datetime.getMilliseconds())}`;
54298
+
54299
+ case "YYYY-MM-DD HH:MM":
54300
+ return `${datetime.getFullYear()}-${IFrameSplitOperator.NumberToString(datetime.getMonth()+1)}-${IFrameSplitOperator.NumberToString(datetime.getDate())} ${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
54301
+ case "MM-DD HH:MM":
54302
+ return `${IFrameSplitOperator.NumberToString(datetime.getMonth()+1)}-${IFrameSplitOperator.NumberToString(datetime.getDate())} ${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
54303
+
54298
54304
  default:
54299
54305
  return null;
54300
54306
  }
@@ -54350,6 +54356,15 @@ IFrameSplitOperator.IsPlusNumber=function(value)
54350
54356
  return value>0;
54351
54357
  }
54352
54358
 
54359
+ //>=0
54360
+ IFrameSplitOperator.IsGTEZero=function(value)
54361
+ {
54362
+ if (value==null) return false;
54363
+ if (isNaN(value)) return false;
54364
+
54365
+ return value>=0;
54366
+ }
54367
+
54353
54368
  //是否是整形
54354
54369
  IFrameSplitOperator.IsInteger=function(x)
54355
54370
  {
@@ -5266,6 +5266,9 @@ function ChartReport()
5266
5266
 
5267
5267
  this.LastMouseStatus;
5268
5268
 
5269
+ //绘图过程中的缓存数据 绘制完清空的
5270
+ this.TempCache=null; //
5271
+
5269
5272
  this.ReloadResource=function(resource)
5270
5273
  {
5271
5274
  this.DevicePixelRatio=GetDevicePixelRatio()
@@ -5467,6 +5470,7 @@ function ChartReport()
5467
5470
  else if (this.IsReserveDateTime(item.Type))
5468
5471
  {
5469
5472
  if (item.DateTimeFormat) colItem.DateTimeFormat=item.DateTimeFormat; //日期格式化
5473
+ if (item.SubDateTimeFormat) colItem.SubDateTimeFormat=item.SubDateTimeFormat;
5470
5474
  }
5471
5475
  else if (item.Type==REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID)
5472
5476
  {
@@ -5754,6 +5758,11 @@ function ChartReport()
5754
5758
  this.Canvas.clip();
5755
5759
  }
5756
5760
 
5761
+ this.CreateTempCache=function()
5762
+ {
5763
+ this.TempCache={ MapReserveDateTime:new Map() }; //MapReserveDateTime:key=colindex, Value:{ PreDate }
5764
+ }
5765
+
5757
5766
  this.Draw=function(lastMouseStatus)
5758
5767
  {
5759
5768
  this.ShowSymbol=[];
@@ -5762,6 +5771,7 @@ function ChartReport()
5762
5771
  this.AryFullSelectedRow=[];
5763
5772
  this.DevicePixelRatio=GetDevicePixelRatio()
5764
5773
  this.LastMouseStatus=lastMouseStatus;
5774
+ this.CreateTempCache();
5765
5775
 
5766
5776
  if (this.GlobalOption) this.GlobalOption.FlashBGCount=0;
5767
5777
 
@@ -5800,6 +5810,7 @@ function ChartReport()
5800
5810
  this.LastMouseStatus=null;
5801
5811
  this.SizeChange=false;
5802
5812
  this.AryFullSelectedRow=[];
5813
+ this.TempCache=null;
5803
5814
  }
5804
5815
 
5805
5816
  this.DrawDragHeaderBG=function()
@@ -7692,6 +7703,36 @@ function ChartReport()
7692
7703
  }
7693
7704
  }
7694
7705
 
7706
+ this.GetReserveDateTimePreItem=function(colIndex)
7707
+ {
7708
+ if (!this.CreateTempCache) return null;
7709
+ if (!this.TempCache.MapReserveDateTime) return null;
7710
+
7711
+ var mapData=this.TempCache.MapReserveDateTime;
7712
+ if (!mapData.has(colIndex)) return null;
7713
+
7714
+ return mapData.get(colIndex);
7715
+ }
7716
+
7717
+ this.SetReserveDateTimePreItem=function(colIndex,data)
7718
+ {
7719
+ if (!this.CreateTempCache) return false;
7720
+ if (!this.TempCache.MapReserveDateTime) return false;
7721
+
7722
+ var mapData=this.TempCache.MapReserveDateTime;
7723
+ if (mapData.has(colIndex))
7724
+ {
7725
+ var item=mapData.get(colIndex);
7726
+ item.PreItem.Date=data.Date;
7727
+ }
7728
+ else
7729
+ {
7730
+ mapData.set(colIndex, { PreItem:{ Date:data.Date } })
7731
+ }
7732
+
7733
+ return true;
7734
+ }
7735
+
7695
7736
  this.FormatReserveDateTime=function(column, data, drawInfo)
7696
7737
  {
7697
7738
  if (column.DefaultText) drawInfo.Text=column.DefaultText;
@@ -7702,7 +7743,24 @@ function ChartReport()
7702
7743
  var item=data[fieldName];
7703
7744
  if (!IFrameSplitOperator.IsObject(item)) return;
7704
7745
 
7705
- if (item.DateTime) drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime,column.DateTimeFormat);
7746
+ var cacheItem=this.GetReserveDateTimePreItem(drawInfo.ColumnIndex);
7747
+ if (item.DateTime)
7748
+ {
7749
+ var date=item.DateTime.getFullYear()*10000+(item.DateTime.getMonth()+1)*100+item.DateTime.getDate();
7750
+ var format=column.DateTimeFormat;
7751
+ if (cacheItem && cacheItem.PreItem && date==cacheItem.PreItem.Date)
7752
+ {
7753
+ if (column.SubDateTimeFormat) format=column.SubDateTimeFormat
7754
+ }
7755
+ else
7756
+ {
7757
+
7758
+ this.SetReserveDateTimePreItem(drawInfo.ColumnIndex, {Date:date});
7759
+ }
7760
+
7761
+ drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime, format);
7762
+ }
7763
+
7706
7764
  if (item.TextColor) drawInfo.TextColor=item.TextColor;
7707
7765
  if (item.BGColor) drawInfo.BGColor=item.BGColor;
7708
7766
  }
@@ -1844,6 +1844,10 @@ HQData.Report_RequestStockData=function(data, callback)
1844
1844
 
1845
1845
  newItem[301]=HQData.GetRandomTestData(0,100)/100;
1846
1846
  newItem[302]=HQData.GetRandomTestData(0,100)/100;
1847
+
1848
+ var testDate=new Date();
1849
+ testDate.setHours(testDate.getHours() + i*2)
1850
+ newItem[401]={ DateTime:testDate } ;
1847
1851
 
1848
1852
 
1849
1853
  item.Data=newItem;
@@ -1999,6 +2003,9 @@ HQData.Report_RequestStockSortData=function(data, callback)
1999
2003
  extendData[7]=(Math.round(Math.random()*60))/100;
2000
2004
  extendData[8]=(Math.round(Math.random()*60))/100;
2001
2005
 
2006
+ var testDate=new Date();
2007
+ testDate.setHours(testDate.getHours() + i*2)
2008
+ newItem[401]={ DateTime:testDate } ;
2002
2009
 
2003
2010
  item.Data=newItem;
2004
2011
  }
@@ -2571,6 +2578,8 @@ HQData.Report_APIIndex=function(data, callback)
2571
2578
  HQData.APIIndex_MARK_AREA_V2(data, callback);
2572
2579
  else if (request.Data.indexname=="API_CHANNELV2")
2573
2580
  HQData.APIIndex_CHANNEL_V2(data, callback);
2581
+ else if (request.Data.indexname=="API_CHART_AREA_TEXT")
2582
+ HQData.API_CHART_AREA_TEXT(data, callback);
2574
2583
  }
2575
2584
 
2576
2585
 
@@ -4065,3 +4074,84 @@ HQData.APIIndex_MARK_AREA_V2=function(data, callback)
4065
4074
  }
4066
4075
 
4067
4076
 
4077
+ HQData.API_CHART_AREA_TEXT=function(data, callback)
4078
+ {
4079
+ data.PreventDefault=true;
4080
+ var hqchart=data.HQChart;
4081
+ var kData=hqchart.GetKData();
4082
+
4083
+ var markData=
4084
+ {
4085
+ name:'区域文字', type:1,
4086
+ Draw:
4087
+ {
4088
+ DrawType:'JS_CHART_AREA_TEXT',
4089
+ DrawData:
4090
+ {
4091
+ AryData:[], //[ { Start:{ }, End:{ }, AreaColor:, Text:"", BarColor:, TextColor:, ID: }]
4092
+ },
4093
+
4094
+ Config:{ },
4095
+ }
4096
+ };
4097
+
4098
+ var markItem=null;
4099
+ for(var i=0;i<kData.Data.length;++i)
4100
+ {
4101
+ var kItem=kData.Data[i];
4102
+ if (!markItem)
4103
+ {
4104
+ markItem=
4105
+ {
4106
+ Start:{ Date:kItem.Date, Time:kItem.Time },
4107
+ End:{ Date:kItem.Date, Time:kItem.Time },
4108
+ BGColor:"rgba(186,85,211,0.5)",
4109
+ TextColor:"rgb(255,215,0)",
4110
+ ID:i,
4111
+ Count:1,
4112
+ AryText:
4113
+ [
4114
+ {
4115
+ AryText:
4116
+ [
4117
+ { Text:`日期: ${kItem.Date} `, Color:"rgb(220,220,220)"},
4118
+ { Text:`ID: ${i} `, Color:"rgb(255,165,0)" }
4119
+ ],
4120
+ },
4121
+ {
4122
+ AryText:
4123
+ [
4124
+ { Text:`数据1: -- `, Color:"rgb(30,144,255)"},
4125
+ { Text:`数据2: -- `, Color:"rgb(255,0,255)" }
4126
+ ],
4127
+ }
4128
+ ]
4129
+ }
4130
+ }
4131
+ else
4132
+ {
4133
+ markItem.End.Date=kItem.Date;
4134
+ markItem.End.Time=kItem.Time;
4135
+ markItem.Count++;
4136
+
4137
+ if (markItem.Count>150)
4138
+ {
4139
+ markData.Draw.DrawData.AryData.push(markItem);
4140
+ markItem=null;
4141
+ }
4142
+ }
4143
+
4144
+ }
4145
+
4146
+ var apiData=
4147
+ {
4148
+ code:0,
4149
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
4150
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[markData] }
4151
+ };
4152
+
4153
+ console.log('[HQData.API_CHART_AREA_TEXT] apiData ', apiData);
4154
+ callback(apiData);
4155
+ }
4156
+
4157
+
@@ -12386,18 +12386,18 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12386
12386
  }
12387
12387
  else
12388
12388
  {
12389
- var pt={X:null, Y:null};
12389
+ var pt={ X:null, Y:null };
12390
12390
  pt.X=this.Frame.GetXFromIndex(this.CursorIndex);
12391
12391
  var index=this.CursorIndex;
12392
12392
  var data=this.GetKData();
12393
- if (data.DataOffset+index<data.Data.length)
12393
+ if (IFrameSplitOperator.IsGTEZero(index) && data.DataOffset+index<data.Data.length)
12394
12394
  {
12395
12395
  var close=data.Data[data.DataOffset+index].Close;
12396
12396
  pt.Y=this.Frame.GetYFromData(close);
12397
+ this.LastPoint.FrameID=0;
12397
12398
  }
12398
12399
  this.LastPoint.X=pt.X;
12399
12400
  this.LastPoint.Y=pt.Y;
12400
- this.LastPoint.FrameID=0;
12401
12401
  }
12402
12402
  }
12403
12403
 
@@ -58391,6 +58391,12 @@ IFrameSplitOperator.FormatDateTimeStringV2=function(datetime, format, languageID
58391
58391
  return `${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
58392
58392
  case "HH:MM:SS.fff":
58393
58393
  return `${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}:${IFrameSplitOperator.NumberToString(datetime.getSeconds())}.${IFrameSplitOperator.MillisecondToString(datetime.getMilliseconds())}`;
58394
+
58395
+ case "YYYY-MM-DD HH:MM":
58396
+ return `${datetime.getFullYear()}-${IFrameSplitOperator.NumberToString(datetime.getMonth()+1)}-${IFrameSplitOperator.NumberToString(datetime.getDate())} ${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
58397
+ case "MM-DD HH:MM":
58398
+ return `${IFrameSplitOperator.NumberToString(datetime.getMonth()+1)}-${IFrameSplitOperator.NumberToString(datetime.getDate())} ${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
58399
+
58394
58400
  default:
58395
58401
  return null;
58396
58402
  }
@@ -58446,6 +58452,15 @@ IFrameSplitOperator.IsPlusNumber=function(value)
58446
58452
  return value>0;
58447
58453
  }
58448
58454
 
58455
+ //>=0
58456
+ IFrameSplitOperator.IsGTEZero=function(value)
58457
+ {
58458
+ if (value==null) return false;
58459
+ if (isNaN(value)) return false;
58460
+
58461
+ return value>=0;
58462
+ }
58463
+
58449
58464
  //是否是整形
58450
58465
  IFrameSplitOperator.IsInteger=function(x)
58451
58466
  {
@@ -143923,6 +143938,9 @@ function ChartReport()
143923
143938
 
143924
143939
  this.LastMouseStatus;
143925
143940
 
143941
+ //绘图过程中的缓存数据 绘制完清空的
143942
+ this.TempCache=null; //
143943
+
143926
143944
  this.ReloadResource=function(resource)
143927
143945
  {
143928
143946
  this.DevicePixelRatio=GetDevicePixelRatio()
@@ -144124,6 +144142,7 @@ function ChartReport()
144124
144142
  else if (this.IsReserveDateTime(item.Type))
144125
144143
  {
144126
144144
  if (item.DateTimeFormat) colItem.DateTimeFormat=item.DateTimeFormat; //日期格式化
144145
+ if (item.SubDateTimeFormat) colItem.SubDateTimeFormat=item.SubDateTimeFormat;
144127
144146
  }
144128
144147
  else if (item.Type==REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID)
144129
144148
  {
@@ -144411,6 +144430,11 @@ function ChartReport()
144411
144430
  this.Canvas.clip();
144412
144431
  }
144413
144432
 
144433
+ this.CreateTempCache=function()
144434
+ {
144435
+ this.TempCache={ MapReserveDateTime:new Map() }; //MapReserveDateTime:key=colindex, Value:{ PreDate }
144436
+ }
144437
+
144414
144438
  this.Draw=function(lastMouseStatus)
144415
144439
  {
144416
144440
  this.ShowSymbol=[];
@@ -144419,6 +144443,7 @@ function ChartReport()
144419
144443
  this.AryFullSelectedRow=[];
144420
144444
  this.DevicePixelRatio=GetDevicePixelRatio()
144421
144445
  this.LastMouseStatus=lastMouseStatus;
144446
+ this.CreateTempCache();
144422
144447
 
144423
144448
  if (this.GlobalOption) this.GlobalOption.FlashBGCount=0;
144424
144449
 
@@ -144457,6 +144482,7 @@ function ChartReport()
144457
144482
  this.LastMouseStatus=null;
144458
144483
  this.SizeChange=false;
144459
144484
  this.AryFullSelectedRow=[];
144485
+ this.TempCache=null;
144460
144486
  }
144461
144487
 
144462
144488
  this.DrawDragHeaderBG=function()
@@ -146349,6 +146375,36 @@ function ChartReport()
146349
146375
  }
146350
146376
  }
146351
146377
 
146378
+ this.GetReserveDateTimePreItem=function(colIndex)
146379
+ {
146380
+ if (!this.CreateTempCache) return null;
146381
+ if (!this.TempCache.MapReserveDateTime) return null;
146382
+
146383
+ var mapData=this.TempCache.MapReserveDateTime;
146384
+ if (!mapData.has(colIndex)) return null;
146385
+
146386
+ return mapData.get(colIndex);
146387
+ }
146388
+
146389
+ this.SetReserveDateTimePreItem=function(colIndex,data)
146390
+ {
146391
+ if (!this.CreateTempCache) return false;
146392
+ if (!this.TempCache.MapReserveDateTime) return false;
146393
+
146394
+ var mapData=this.TempCache.MapReserveDateTime;
146395
+ if (mapData.has(colIndex))
146396
+ {
146397
+ var item=mapData.get(colIndex);
146398
+ item.PreItem.Date=data.Date;
146399
+ }
146400
+ else
146401
+ {
146402
+ mapData.set(colIndex, { PreItem:{ Date:data.Date } })
146403
+ }
146404
+
146405
+ return true;
146406
+ }
146407
+
146352
146408
  this.FormatReserveDateTime=function(column, data, drawInfo)
146353
146409
  {
146354
146410
  if (column.DefaultText) drawInfo.Text=column.DefaultText;
@@ -146359,7 +146415,24 @@ function ChartReport()
146359
146415
  var item=data[fieldName];
146360
146416
  if (!IFrameSplitOperator.IsObject(item)) return;
146361
146417
 
146362
- if (item.DateTime) drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime,column.DateTimeFormat);
146418
+ var cacheItem=this.GetReserveDateTimePreItem(drawInfo.ColumnIndex);
146419
+ if (item.DateTime)
146420
+ {
146421
+ var date=item.DateTime.getFullYear()*10000+(item.DateTime.getMonth()+1)*100+item.DateTime.getDate();
146422
+ var format=column.DateTimeFormat;
146423
+ if (cacheItem && cacheItem.PreItem && date==cacheItem.PreItem.Date)
146424
+ {
146425
+ if (column.SubDateTimeFormat) format=column.SubDateTimeFormat
146426
+ }
146427
+ else
146428
+ {
146429
+
146430
+ this.SetReserveDateTimePreItem(drawInfo.ColumnIndex, {Date:date});
146431
+ }
146432
+
146433
+ drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime, format);
146434
+ }
146435
+
146363
146436
  if (item.TextColor) drawInfo.TextColor=item.TextColor;
146364
146437
  if (item.BGColor) drawInfo.BGColor=item.BGColor;
146365
146438
  }
@@ -152227,7 +152300,7 @@ function ScrollBarBGChart()
152227
152300
 
152228
152301
 
152229
152302
 
152230
- var HQCHART_VERSION="1.1.14981";
152303
+ var HQCHART_VERSION="1.1.14985";
152231
152304
 
152232
152305
  function PrintHQChartVersion()
152233
152306
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14981";
8
+ var HQCHART_VERSION="1.1.14985";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -57376,6 +57376,10 @@ HQData.Report_RequestStockData=function(data, callback)
57376
57376
 
57377
57377
  newItem[301]=HQData.GetRandomTestData(0,100)/100;
57378
57378
  newItem[302]=HQData.GetRandomTestData(0,100)/100;
57379
+
57380
+ var testDate=new Date();
57381
+ testDate.setHours(testDate.getHours() + i*2)
57382
+ newItem[401]={ DateTime:testDate } ;
57379
57383
 
57380
57384
 
57381
57385
  item.Data=newItem;
@@ -57531,6 +57535,9 @@ HQData.Report_RequestStockSortData=function(data, callback)
57531
57535
  extendData[7]=(Math.round(Math.random()*60))/100;
57532
57536
  extendData[8]=(Math.round(Math.random()*60))/100;
57533
57537
 
57538
+ var testDate=new Date();
57539
+ testDate.setHours(testDate.getHours() + i*2)
57540
+ newItem[401]={ DateTime:testDate } ;
57534
57541
 
57535
57542
  item.Data=newItem;
57536
57543
  }
@@ -58103,6 +58110,8 @@ HQData.Report_APIIndex=function(data, callback)
58103
58110
  HQData.APIIndex_MARK_AREA_V2(data, callback);
58104
58111
  else if (request.Data.indexname=="API_CHANNELV2")
58105
58112
  HQData.APIIndex_CHANNEL_V2(data, callback);
58113
+ else if (request.Data.indexname=="API_CHART_AREA_TEXT")
58114
+ HQData.API_CHART_AREA_TEXT(data, callback);
58106
58115
  }
58107
58116
 
58108
58117
 
@@ -59597,6 +59606,87 @@ HQData.APIIndex_MARK_AREA_V2=function(data, callback)
59597
59606
  }
59598
59607
 
59599
59608
 
59609
+ HQData.API_CHART_AREA_TEXT=function(data, callback)
59610
+ {
59611
+ data.PreventDefault=true;
59612
+ var hqchart=data.HQChart;
59613
+ var kData=hqchart.GetKData();
59614
+
59615
+ var markData=
59616
+ {
59617
+ name:'区域文字', type:1,
59618
+ Draw:
59619
+ {
59620
+ DrawType:'JS_CHART_AREA_TEXT',
59621
+ DrawData:
59622
+ {
59623
+ AryData:[], //[ { Start:{ }, End:{ }, AreaColor:, Text:"", BarColor:, TextColor:, ID: }]
59624
+ },
59625
+
59626
+ Config:{ },
59627
+ }
59628
+ };
59629
+
59630
+ var markItem=null;
59631
+ for(var i=0;i<kData.Data.length;++i)
59632
+ {
59633
+ var kItem=kData.Data[i];
59634
+ if (!markItem)
59635
+ {
59636
+ markItem=
59637
+ {
59638
+ Start:{ Date:kItem.Date, Time:kItem.Time },
59639
+ End:{ Date:kItem.Date, Time:kItem.Time },
59640
+ BGColor:"rgba(186,85,211,0.5)",
59641
+ TextColor:"rgb(255,215,0)",
59642
+ ID:i,
59643
+ Count:1,
59644
+ AryText:
59645
+ [
59646
+ {
59647
+ AryText:
59648
+ [
59649
+ { Text:`日期: ${kItem.Date} `, Color:"rgb(220,220,220)"},
59650
+ { Text:`ID: ${i} `, Color:"rgb(255,165,0)" }
59651
+ ],
59652
+ },
59653
+ {
59654
+ AryText:
59655
+ [
59656
+ { Text:`数据1: -- `, Color:"rgb(30,144,255)"},
59657
+ { Text:`数据2: -- `, Color:"rgb(255,0,255)" }
59658
+ ],
59659
+ }
59660
+ ]
59661
+ }
59662
+ }
59663
+ else
59664
+ {
59665
+ markItem.End.Date=kItem.Date;
59666
+ markItem.End.Time=kItem.Time;
59667
+ markItem.Count++;
59668
+
59669
+ if (markItem.Count>150)
59670
+ {
59671
+ markData.Draw.DrawData.AryData.push(markItem);
59672
+ markItem=null;
59673
+ }
59674
+ }
59675
+
59676
+ }
59677
+
59678
+ var apiData=
59679
+ {
59680
+ code:0,
59681
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
59682
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[markData] }
59683
+ };
59684
+
59685
+ console.log('[HQData.API_CHART_AREA_TEXT] apiData ', apiData);
59686
+ callback(apiData);
59687
+ }
59688
+
59689
+
59600
59690
 
59601
59691
 
59602
59692
  /*暴露外部用的方法*/
@@ -12430,18 +12430,18 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12430
12430
  }
12431
12431
  else
12432
12432
  {
12433
- var pt={X:null, Y:null};
12433
+ var pt={ X:null, Y:null };
12434
12434
  pt.X=this.Frame.GetXFromIndex(this.CursorIndex);
12435
12435
  var index=this.CursorIndex;
12436
12436
  var data=this.GetKData();
12437
- if (data.DataOffset+index<data.Data.length)
12437
+ if (IFrameSplitOperator.IsGTEZero(index) && data.DataOffset+index<data.Data.length)
12438
12438
  {
12439
12439
  var close=data.Data[data.DataOffset+index].Close;
12440
12440
  pt.Y=this.Frame.GetYFromData(close);
12441
+ this.LastPoint.FrameID=0;
12441
12442
  }
12442
12443
  this.LastPoint.X=pt.X;
12443
12444
  this.LastPoint.Y=pt.Y;
12444
- this.LastPoint.FrameID=0;
12445
12445
  }
12446
12446
  }
12447
12447
 
@@ -58435,6 +58435,12 @@ IFrameSplitOperator.FormatDateTimeStringV2=function(datetime, format, languageID
58435
58435
  return `${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
58436
58436
  case "HH:MM:SS.fff":
58437
58437
  return `${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}:${IFrameSplitOperator.NumberToString(datetime.getSeconds())}.${IFrameSplitOperator.MillisecondToString(datetime.getMilliseconds())}`;
58438
+
58439
+ case "YYYY-MM-DD HH:MM":
58440
+ return `${datetime.getFullYear()}-${IFrameSplitOperator.NumberToString(datetime.getMonth()+1)}-${IFrameSplitOperator.NumberToString(datetime.getDate())} ${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
58441
+ case "MM-DD HH:MM":
58442
+ return `${IFrameSplitOperator.NumberToString(datetime.getMonth()+1)}-${IFrameSplitOperator.NumberToString(datetime.getDate())} ${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
58443
+
58438
58444
  default:
58439
58445
  return null;
58440
58446
  }
@@ -58490,6 +58496,15 @@ IFrameSplitOperator.IsPlusNumber=function(value)
58490
58496
  return value>0;
58491
58497
  }
58492
58498
 
58499
+ //>=0
58500
+ IFrameSplitOperator.IsGTEZero=function(value)
58501
+ {
58502
+ if (value==null) return false;
58503
+ if (isNaN(value)) return false;
58504
+
58505
+ return value>=0;
58506
+ }
58507
+
58493
58508
  //是否是整形
58494
58509
  IFrameSplitOperator.IsInteger=function(x)
58495
58510
  {
@@ -143967,6 +143982,9 @@ function ChartReport()
143967
143982
 
143968
143983
  this.LastMouseStatus;
143969
143984
 
143985
+ //绘图过程中的缓存数据 绘制完清空的
143986
+ this.TempCache=null; //
143987
+
143970
143988
  this.ReloadResource=function(resource)
143971
143989
  {
143972
143990
  this.DevicePixelRatio=GetDevicePixelRatio()
@@ -144168,6 +144186,7 @@ function ChartReport()
144168
144186
  else if (this.IsReserveDateTime(item.Type))
144169
144187
  {
144170
144188
  if (item.DateTimeFormat) colItem.DateTimeFormat=item.DateTimeFormat; //日期格式化
144189
+ if (item.SubDateTimeFormat) colItem.SubDateTimeFormat=item.SubDateTimeFormat;
144171
144190
  }
144172
144191
  else if (item.Type==REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID)
144173
144192
  {
@@ -144455,6 +144474,11 @@ function ChartReport()
144455
144474
  this.Canvas.clip();
144456
144475
  }
144457
144476
 
144477
+ this.CreateTempCache=function()
144478
+ {
144479
+ this.TempCache={ MapReserveDateTime:new Map() }; //MapReserveDateTime:key=colindex, Value:{ PreDate }
144480
+ }
144481
+
144458
144482
  this.Draw=function(lastMouseStatus)
144459
144483
  {
144460
144484
  this.ShowSymbol=[];
@@ -144463,6 +144487,7 @@ function ChartReport()
144463
144487
  this.AryFullSelectedRow=[];
144464
144488
  this.DevicePixelRatio=GetDevicePixelRatio()
144465
144489
  this.LastMouseStatus=lastMouseStatus;
144490
+ this.CreateTempCache();
144466
144491
 
144467
144492
  if (this.GlobalOption) this.GlobalOption.FlashBGCount=0;
144468
144493
 
@@ -144501,6 +144526,7 @@ function ChartReport()
144501
144526
  this.LastMouseStatus=null;
144502
144527
  this.SizeChange=false;
144503
144528
  this.AryFullSelectedRow=[];
144529
+ this.TempCache=null;
144504
144530
  }
144505
144531
 
144506
144532
  this.DrawDragHeaderBG=function()
@@ -146393,6 +146419,36 @@ function ChartReport()
146393
146419
  }
146394
146420
  }
146395
146421
 
146422
+ this.GetReserveDateTimePreItem=function(colIndex)
146423
+ {
146424
+ if (!this.CreateTempCache) return null;
146425
+ if (!this.TempCache.MapReserveDateTime) return null;
146426
+
146427
+ var mapData=this.TempCache.MapReserveDateTime;
146428
+ if (!mapData.has(colIndex)) return null;
146429
+
146430
+ return mapData.get(colIndex);
146431
+ }
146432
+
146433
+ this.SetReserveDateTimePreItem=function(colIndex,data)
146434
+ {
146435
+ if (!this.CreateTempCache) return false;
146436
+ if (!this.TempCache.MapReserveDateTime) return false;
146437
+
146438
+ var mapData=this.TempCache.MapReserveDateTime;
146439
+ if (mapData.has(colIndex))
146440
+ {
146441
+ var item=mapData.get(colIndex);
146442
+ item.PreItem.Date=data.Date;
146443
+ }
146444
+ else
146445
+ {
146446
+ mapData.set(colIndex, { PreItem:{ Date:data.Date } })
146447
+ }
146448
+
146449
+ return true;
146450
+ }
146451
+
146396
146452
  this.FormatReserveDateTime=function(column, data, drawInfo)
146397
146453
  {
146398
146454
  if (column.DefaultText) drawInfo.Text=column.DefaultText;
@@ -146403,7 +146459,24 @@ function ChartReport()
146403
146459
  var item=data[fieldName];
146404
146460
  if (!IFrameSplitOperator.IsObject(item)) return;
146405
146461
 
146406
- if (item.DateTime) drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime,column.DateTimeFormat);
146462
+ var cacheItem=this.GetReserveDateTimePreItem(drawInfo.ColumnIndex);
146463
+ if (item.DateTime)
146464
+ {
146465
+ var date=item.DateTime.getFullYear()*10000+(item.DateTime.getMonth()+1)*100+item.DateTime.getDate();
146466
+ var format=column.DateTimeFormat;
146467
+ if (cacheItem && cacheItem.PreItem && date==cacheItem.PreItem.Date)
146468
+ {
146469
+ if (column.SubDateTimeFormat) format=column.SubDateTimeFormat
146470
+ }
146471
+ else
146472
+ {
146473
+
146474
+ this.SetReserveDateTimePreItem(drawInfo.ColumnIndex, {Date:date});
146475
+ }
146476
+
146477
+ drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime, format);
146478
+ }
146479
+
146407
146480
  if (item.TextColor) drawInfo.TextColor=item.TextColor;
146408
146481
  if (item.BGColor) drawInfo.BGColor=item.BGColor;
146409
146482
  }
@@ -163606,7 +163679,7 @@ function HQChartScriptWorker()
163606
163679
 
163607
163680
 
163608
163681
 
163609
- var HQCHART_VERSION="1.1.14981";
163682
+ var HQCHART_VERSION="1.1.14985";
163610
163683
 
163611
163684
  function PrintHQChartVersion()
163612
163685
  {