hqchart 1.1.13531 → 1.1.13537
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 +77 -72
- package/package.json +1 -1
- package/src/jscommon/umychart.js +9 -10
- package/src/jscommon/umychart.report.js +160 -22
- package/src/jscommon/umychart.style.js +1 -1
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +171 -34
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +171 -34
package/lib/umychart.vue.js
CHANGED
|
@@ -1145,7 +1145,7 @@ this.CreateExtraCanvasElement=function(name,option){if(this.MapExtraCanvasElemen
|
|
|
1145
1145
|
{ Type: 1=K线柱子宽度不变 2=K线全部显示
|
|
1146
1146
|
Redraw:是否重绘, XYSplit:是否重新计算分割线 }
|
|
1147
1147
|
*/this.OnSize=function(option){//画布大小通过div获取 如果有style里的大小 使用style里的
|
|
1148
|
-
if(this.DivElement.style.height&&this.DivElement.style.width){
|
|
1148
|
+
var height=this.DivElement.offsetHeight;var width=this.DivElement.offsetWidth;if(this.DivElement.style.height&&this.DivElement.style.width){if(this.DivElement.style.height.includes("px"))height=parseInt(this.DivElement.style.height.replace("px",""));if(this.DivElement.style.width.includes("px"))width=parseInt(this.DivElement.style.width.replace("px",""));}if(this.ToolElement){//TODO调整工具条大小
|
|
1149
1149
|
height-=this.ToolElement.style.height.replace("px","");//减去工具条的高度
|
|
1150
1150
|
}this.CanvasElement.height=height;this.CanvasElement.width=width;this.CanvasElement.style.width=this.CanvasElement.width+'px';this.CanvasElement.style.height=this.CanvasElement.height+'px';var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
1151
1151
|
this.CanvasElement.height*=pixelTatio;this.CanvasElement.width*=pixelTatio;if(this.OffscreenCanvasElement){this.OffscreenCanvasElement.height=this.CanvasElement.height;this.OffscreenCanvasElement.width=this.CanvasElement.width;}if(this.CacheCanvasElement){this.CacheCanvasElement.height=this.CanvasElement.height;this.CacheCanvasElement.width=this.CanvasElement.width;}var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=(0,_getIterator3.default)(this.MapExtraCanvasElement),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var mapItem=_step.value;var item=mapItem[1];var element=item.Element;if(!element)continue;element.height=this.CanvasElement.height;element.width=this.CanvasElement.width;element.style.width=this.CanvasElement.style.width;element.style.height=this.CanvasElement.style.height;}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}JSConsole.Chart.Log('[JSChart::OnSize] devicePixelRatio='+window.devicePixelRatio+', height='+this.CanvasElement.height+', width='+this.CanvasElement.width);if(option&&option.Redraw==false)return;if(this.JSChartContainer){if(option&&option.XYSplit===true)this.JSChartContainer.ResetFrameXYSplit();if(this.JSChartContainer.OnSize&&option&&option.Type==1)//K线宽度不变
|
|
@@ -6685,7 +6685,7 @@ Text:"rgb(60,60,60)"//默认文本
|
|
|
6685
6685
|
DownTextColor:"rgb(25,158,0)",//下跌文字颜色
|
|
6686
6686
|
UnchagneTextColor:"rgb(90,90,90)",//平盘文字颜色
|
|
6687
6687
|
CloseLine:{CloseColor:"rgb(30,144,255)",YCloseColor:"rgba(105,105,105,0.5)",//昨收线
|
|
6688
|
-
AreaColor:'rgba(0,191,255,0.2)'},KLine:{UpColor:"rgb(255,0,0)",DownColor:"rgb(0,128,0)",UnchagneColor:'rgb(90,90,90)',DataWidth:16,DistanceWidth:3},Tab:{Font:{Size:12,Name:"微软雅黑"},ScrollBarWidth:100,ButtonColor:"rgb(252,252,252)",BarColor:"rgb(180,180,180)",BorderColor:'rgb(180,180,180)',Mergin:{Left:5,Right:5,Top:4,Bottom:2},TabTitleColor:'rgb(60,60,60)',TabSelectedTitleColor:'rgb(
|
|
6688
|
+
AreaColor:'rgba(0,191,255,0.2)'},KLine:{UpColor:"rgb(255,0,0)",DownColor:"rgb(0,128,0)",UnchagneColor:'rgb(90,90,90)',DataWidth:16,DistanceWidth:3},Tab:{Font:{Size:12,Name:"微软雅黑"},ScrollBarWidth:100,ButtonColor:"rgb(252,252,252)",BarColor:"rgb(180,180,180)",BorderColor:'rgb(180,180,180)',Mergin:{Left:5,Right:5,Top:4,Bottom:2},TabTitleColor:'rgb(60,60,60)',TabSelectedTitleColor:'rgb(255,255,255)',TabSelectedBGColor:"rgb(234,85,4)",TabMoveOnTitleColor:"rgb(234,85,4)",TabBGColor:"rgb(220,220,220)"},PageInfo:{Font:{Size:15,Name:"微软雅黑"},TextColor:"rgb(0,0,0)",BGColor:"rgba(180,180,180,0.5)",Mergin:{Left:5,Right:5,Top:4,Bottom:2}},DragRow:{Color:"rgba(190,190,190,0.8)",TextColor:'rgba(0,0, 0, 0.8)',MoveRowColor:'rgb(240,128,128)',SrcRowColor:'rgb(180,240,240)'},VScrollbar:{ScrollBarHeight:60,ButtonColor:"rgba(252,252,252,0.8)",BarColor:"rgba(168,168,168,0.9)",BorderColor:'rgba(180,180,180,0.9)',BGColor:"rgba(234,239,248,0.9)",BarWidth:{Size:12}}},//报价列表
|
|
6689
6689
|
this.TReport={BorderColor:'rgb(192,192,192)',//边框线
|
|
6690
6690
|
SelectedColor:"rgb(3,89,245)",//选中行
|
|
6691
6691
|
Header:{Color:"rgb(60,60,60)",//表头文字颜色
|
|
@@ -12022,7 +12022,7 @@ Text:"rgb(245,245,245)"//默认文本
|
|
|
12022
12022
|
AreaColor:'rgba(220,220,220,0.2)'},KLine:{UpColor:"rgb(255,0,0)",DownColor:"rgb(0,128,0)",UnchagneColor:'rgb(240,240,240)',DataWidth:16,DistanceWidth:3},UpTextColor:"rgb(238,21,21)",//上涨文字颜色
|
|
12023
12023
|
DownTextColor:"rgb(25,158,0)",//下跌文字颜色
|
|
12024
12024
|
UnchagneTextColor:"rgb(228,228,228)",//平盘文字颜色
|
|
12025
|
-
Tab:{Font:{Size:12,Name:"微软雅黑"},ScrollBarWidth:100,ButtonColor:"rgb(13,12,15)",BarColor:"rgb(48,48,48)",BorderColor:'rgb(48,48,48)',TabTitleColor:'rgb(153,153,153)',TabSelectedTitleColor:'rgb(255,255,255)',TabSelectedBGColor:"rgb(
|
|
12025
|
+
Tab:{Font:{Size:12,Name:"微软雅黑"},ScrollBarWidth:100,ButtonColor:"rgb(13,12,15)",BarColor:"rgb(48,48,48)",BorderColor:'rgb(48,48,48)',TabTitleColor:'rgb(153,153,153)',TabSelectedTitleColor:'rgb(255,255,255)',TabSelectedBGColor:"rgb(234,85,4)",TabMoveOnTitleColor:"rgb(255,255,255)",TabBGColor:"rgb(28,28,31)"},PageInfo:{Font:{Size:15,Name:"微软雅黑"},TextColor:"rgb(255,255,255)",BGColor:"rgba(49,48,56,0.8)",Mergin:{Left:5,Right:5,Top:4,Bottom:2}},DragRow:{Color:"rgba(255,250, 250,0.8)",TextColor:'rgba(0,0, 0, 0.8)',MoveRowColor:'rgb(135,206,250)',SrcRowColor:'rgb(49,48,56)'},VScrollbar:{BarWidth:40,ScrollBarHeight:60,ButtonColor:"rgba(13,12,15,0.8)",BarColor:"rgba(48,48,48,0.9)",BorderColor:'rgba(48,48,48,0.9)',BGColor:"rgba(211,211,211,0.5)"}},//T型报价
|
|
12026
12026
|
TReport:{BorderColor:'rgb(38,38,41)',//边框线
|
|
12027
12027
|
SelectedColor:"rgb(180,180,180)",//选中行
|
|
12028
12028
|
Header:{Color:"rgb(187,187,187)",//表头文字颜色
|
|
@@ -12195,14 +12195,14 @@ if(!barData)return false;if(!IFrameSplitOperator.IsNonEmptyArray(barData.Value))
|
|
|
12195
12195
|
this.CanvasElement=document.createElement("canvas");this.CanvasElement.className='jsreportlist-drawing';this.CanvasElement.id=Guid();this.CanvasElement.setAttribute("tabindex",0);if(this.CanvasElement.style)this.CanvasElement.style.outline='none';if(divElement.hasChildNodes()){JSConsole.Chart.Log("[JSReportChart::JSReportChart] divElement hasChildNodes",divElement.childNodes);}divElement.appendChild(this.CanvasElement);//额外的画布
|
|
12196
12196
|
this.MapExtraCanvasElement=new _map2.default();//key=画布名字, value={ Element:, Canvas:}
|
|
12197
12197
|
this.CreateExtraCanvasElement=function(name,option){if(this.MapExtraCanvasElement.has(name))return this.MapExtraCanvasElement.get(name);var element=document.createElement("canvas");element.className='jsreportlist-drawing-extra';element.id=Guid();if(name==JSReportChart.CorssCursorCanvasKey)element.setAttribute("tabindex",5);else element.setAttribute("tabindex",1);if(element.style){element.style.outline='none';element.style.position="absolute";element.style.left='0px';element.style.top='0px';element.style["pointer-events"]="none";}if(option){if(IFrameSplitOperator.IsNumber(option.TabIndex))element.setAttribute("tabindex",option.TabIndex);if(IFrameSplitOperator.IsNumber(option.ZIndex))element.style["z-index"]=option.ZIndex;}if(this.CanvasElement){element.height=this.CanvasElement.height;element.width=this.CanvasElement.width;if(element.style){element.style.width=this.CanvasElement.style.width;element.style.height=this.CanvasElement.style.height;}}divElement.appendChild(element);var item={Element:element,Canvas:null};this.MapExtraCanvasElement.set(name,item);};this.GetExtraCanvas=function(name){if(!this.MapExtraCanvasElement.has(name))return null;var item=this.MapExtraCanvasElement.get(name);if(!item.Element)return null;if(!item.Canvas)item.Canvas=item.Element.getContext("2d");return item;};this.OnSize=function(){//画布大小通过div获取
|
|
12198
|
-
var height=parseInt(this.DivElement.style.height.replace("px",""));this.
|
|
12198
|
+
var height=this.DivElement.offsetHeight;var width=this.DivElement.offsetWidth;if(this.DivElement.style.height&&this.DivElement.style.width){if(this.DivElement.style.height.includes("px"))height=parseInt(this.DivElement.style.height.replace("px",""));if(this.DivElement.style.width.includes("px"))width=parseInt(this.DivElement.style.width.replace("px",""));}this.CanvasElement.height=height;this.CanvasElement.width=width;this.CanvasElement.style.width=this.CanvasElement.width+'px';this.CanvasElement.style.height=this.CanvasElement.height+'px';var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
12199
12199
|
this.CanvasElement.height*=pixelTatio;this.CanvasElement.width*=pixelTatio;//扩展画布
|
|
12200
12200
|
var _iteratorNormalCompletion21=true;var _didIteratorError21=false;var _iteratorError21=undefined;try{for(var _iterator21=(0,_getIterator3.default)(this.MapExtraCanvasElement),_step21;!(_iteratorNormalCompletion21=(_step21=_iterator21.next()).done);_iteratorNormalCompletion21=true){var mapItem=_step21.value;var item=mapItem[1];var element=item.Element;if(!element)continue;element.height=this.CanvasElement.height;element.width=this.CanvasElement.width;element.style.width=this.CanvasElement.style.width;element.style.height=this.CanvasElement.style.height;}}catch(err){_didIteratorError21=true;_iteratorError21=err;}finally{try{if(!_iteratorNormalCompletion21&&_iterator21.return){_iterator21.return();}}finally{if(_didIteratorError21){throw _iteratorError21;}}}JSConsole.Chart.Log('[JSReportChart::OnSize] devicePixelRatio='+window.devicePixelRatio+', height='+this.CanvasElement.height+', width='+this.CanvasElement.width);if(this.JSChartContainer&&this.JSChartContainer.OnSize){this.JSChartContainer.OnSize();}};this.SetOption=function(option){var chart=this.CreateJSReportChartContainer(option);if(!chart)return false;if(option.OnCreatedCallback)option.OnCreatedCallback(chart);this.JSChartContainer=chart;this.DivElement.JSChart=this;//div中保存一份
|
|
12201
|
-
if(option.EnablePopMenuV2===true)chart.InitalPopMenu();if(option.EnableTooltip){this.CreateExtraCanvasElement(JSReportChart.TooltipCursorCanvasKey,{ZIndex:99});}if(option.Symbol)chart.Symbol=option.Symbol;if(option.Name)chart.Name=option.Name;var requestOption={Callback:null};if(chart.Symbol)requestOption.Callback=function(){chart.RequestMemberListData();};if(option.LoadStockList===false){chart.ChartSplashPaint.IsEnableSplash=false;chart.Draw();}else{chart.RequestStockListData(requestOption);//下载码表
|
|
12201
|
+
if(option.EnableResize==true)this.CreateResizeListener();if(option.EnablePopMenuV2===true)chart.InitalPopMenu();if(option.EnableTooltip){this.CreateExtraCanvasElement(JSReportChart.TooltipCursorCanvasKey,{ZIndex:99});}if(option.Symbol)chart.Symbol=option.Symbol;if(option.Name)chart.Name=option.Name;var requestOption={Callback:null};if(chart.Symbol)requestOption.Callback=function(){chart.RequestMemberListData();};if(option.LoadStockList===false){chart.ChartSplashPaint.IsEnableSplash=false;chart.Draw();}else{chart.RequestStockListData(requestOption);//下载码表
|
|
12202
12202
|
}};this.CreateJSReportChartContainer=function(option){var _this51=this;var chart=new JSReportChartContainer(this.CanvasElement);chart.GetExtraCanvas=function(name){return _this51.GetExtraCanvas(name);};chart.Create(option);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(IFrameSplitOperator.IsNonEmptyArray(option.Column))chart.SetColumn(option.Column);if(IFrameSplitOperator.IsNonEmptyArray(option.Tab))chart.SetTab(option.Tab);if(IFrameSplitOperator.IsNumber(option.TabSelected))chart.SetSelectedTab(option.TabSelected);if(IFrameSplitOperator.IsBool(option.EnableDragRow))chart.EnableDragRow=option.EnableDragRow;if(IFrameSplitOperator.IsNumber(option.DragRowType))chart.DragRowType=option.DragRowType;if(IFrameSplitOperator.IsBool(option.EnableDragHeader))chart.EnableDragHeader=option.EnableDragHeader;if(IFrameSplitOperator.IsNumber(option.WheelPageType))chart.WheelPageType=option.WheelPageType;if(IFrameSplitOperator.IsBool(option.PageUpDownCycle))chart.PageUpDownCycle=option.PageUpDownCycle;if(option.VScrollbar)chart.SetVScrollbar(option.VScrollbar);if(option.SortInfo){var item=option.SortInfo;if(IFrameSplitOperator.IsNumber(item.Field))chart.SortInfo.Field=item.Field;if(IFrameSplitOperator.IsNumber(item.Sort))chart.SortInfo.Sort=item.Sort;}var reportChart=chart.GetReportChart();if(reportChart){if(IFrameSplitOperator.IsNumber(option.TextOverflowStyle))reportChart.TextOverflowStyle=option.TextOverflowStyle;}this.SetChartBorder(chart,option);//是否自动更新
|
|
12203
12203
|
if(option.IsAutoUpdate!=null)chart.IsAutoUpdate=option.IsAutoUpdate;if(option.AutoUpdateFrequency>0)chart.AutoUpdateFrequency=option.AutoUpdateFrequency;if(IFrameSplitOperator.IsBool(option.EnableFilter))chart.EnableFilter=option.EnableFilter;//注册事件
|
|
12204
12204
|
if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}return chart;};this.SetChartBorder=function(chart,option){if(!option.Border)return;var item=option.Border;if(IFrameSplitOperator.IsNumber(option.Border.Left))chart.Frame.ChartBorder.Left=option.Border.Left;if(IFrameSplitOperator.IsNumber(option.Border.Right))chart.Frame.ChartBorder.Right=option.Border.Right;if(IFrameSplitOperator.IsNumber(option.Border.Top))chart.Frame.ChartBorder.Top=option.Border.Top;if(IFrameSplitOperator.IsNumber(option.Border.Bottom))chart.Frame.ChartBorder.Bottom=option.Border.Bottom;var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
12205
|
-
chart.Frame.ChartBorder.Left*=pixelTatio;chart.Frame.ChartBorder.Right*=pixelTatio;chart.Frame.ChartBorder.Top*=pixelTatio;chart.Frame.ChartBorder.Bottom*=pixelTatio;};/////////////////////////////////////////////////////////////////////////////
|
|
12205
|
+
chart.Frame.ChartBorder.Left*=pixelTatio;chart.Frame.ChartBorder.Right*=pixelTatio;chart.Frame.ChartBorder.Top*=pixelTatio;chart.Frame.ChartBorder.Bottom*=pixelTatio;};this.CreateResizeListener=function(){var _this52=this;this.ResizeListener=new ResizeObserver(function(entries){_this52.OnDivResize(entries);});this.ResizeListener.observe(this.DivElement);};this.OnDivResize=function(entries){JSConsole.Chart.Log("[JSReportChart::OnDivResize] entries=",entries);this.OnSize();};/////////////////////////////////////////////////////////////////////////////
|
|
12206
12206
|
//对外接口
|
|
12207
12207
|
//切换股票代码接口
|
|
12208
12208
|
this.ChangeSymbol=function(symbol,option){if(this.JSChartContainer)this.JSChartContainer.ChangeSymbol(symbol,option);};this.SetColumn=function(aryColumn,option){if(this.JSChartContainer)this.JSChartContainer.SetColumn(aryColumn,option);};this.EnableFilter=function(bEnable,option)//启动|关闭筛选
|
|
@@ -12268,28 +12268,28 @@ this.JSPopMenu;//内置菜单
|
|
|
12268
12268
|
this.IsShowRightMenu=true;this.LastMouseStatus={MoveStatus:null,TooltipStatus:null};this.ChartDestory=function()//销毁
|
|
12269
12269
|
{this.IsDestroy=true;this.StopAutoUpdate();};this.StopAutoDragScrollTimer=function(){JSConsole.Chart.Log("[JSReportChartContainer::StopAutoDragScrollTimer] stop ");this.EnablePageScroll=false;if(this.AutoDragScrollTimer!=null){clearTimeout(this.AutoDragScrollTimer);this.AutoDragScrollTimer=null;}};this.InitalPopMenu=function()//初始化弹出窗口
|
|
12270
12270
|
{if(this.JSPopMenu)return;this.JSPopMenu=new JSPopMenu();//内置菜单
|
|
12271
|
-
this.JSPopMenu.Inital();};this.AutoScrollPage=function(step){var
|
|
12271
|
+
this.JSPopMenu.Inital();};this.AutoScrollPage=function(step){var _this53=this;this.AutoDragScrollTimer=setTimeout(function(){_this53.ChartOperator_Temp_ScrollPage(step);},300);};this.ChartOperator_Temp_ScrollPage=function(moveSetp){if(!this.EnablePageScroll)return;var reportChart=this.GetReportChart();if(!reportChart)return;if(moveSetp>0){var pageStatus=reportChart.GetCurrentPageStatus();if(pageStatus.IsEnd)return;this.MoveYOffset(moveSetp,false);++moveSetp;}else if(moveSetp<0){if(this.Data.YOffset<=0)return;this.MoveYOffset(moveSetp,false);--moveSetp;}else{return;}this.Draw();if(!this.EnablePageScroll)return;this.AutoScrollPage(moveSetp);return;};//清空画布
|
|
12272
12272
|
this.ClearCanvas=function(canvas){if(!canvas)return;if(!this.UIElement)return;canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);};//清空固定行数据
|
|
12273
12273
|
this.ClearFixedRowData=function(){this.FixedRowData.Data=[];this.FixedRowData.Symbol=[];};//设置固定行
|
|
12274
12274
|
this.SetFixedRowCount=function(value){var chart=this.GetReportChart();if(!chart)return;chart.FixedRowCount=value;};//创建
|
|
12275
|
-
this.Create=function(option){var
|
|
12275
|
+
this.Create=function(option){var _this54=this;this.UIElement.JSChartContainer=this;//创建等待提示
|
|
12276
12276
|
this.ChartSplashPaint=new ChartSplashPaint();this.ChartSplashPaint.Canvas=this.Canvas;this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);this.ChartSplashPaint.IsEnableSplash=true;//创建框架
|
|
12277
12277
|
this.Frame=new JSReportFrame();this.Frame.ChartBorder=new ChartBorder();this.Frame.ChartBorder.UIElement=this.UIElement;this.Frame.ChartBorder.Top=30;this.Frame.ChartBorder.Left=5;this.Frame.ChartBorder.Bottom=20;this.Frame.Canvas=this.Canvas;this.ChartSplashPaint.Frame=this.Frame;//创建表格
|
|
12278
|
-
var chart=new ChartReport();chart.Frame=this.Frame;chart.ChartBorder=this.Frame.ChartBorder;chart.Canvas=this.Canvas;chart.UIElement=this.UIElement;chart.GetEventCallback=function(id){return
|
|
12278
|
+
var chart=new ChartReport();chart.Frame=this.Frame;chart.ChartBorder=this.Frame.ChartBorder;chart.Canvas=this.Canvas;chart.UIElement=this.UIElement;chart.GetEventCallback=function(id){return _this54.GetEventCallback(id);};chart.GetStockDataCallback=function(symbol){return _this54.GetStockData(symbol);};chart.GetBlockDataCallback=function(symbol){return _this54.GetBlockData(symbol);};chart.GetFlashBGDataCallback=function(symbol,time){return _this54.GetFlashBGData(symbol,time);};chart.Data=this.Data;chart.GlobalOption=this.GlobalOption;chart.FixedRowData=this.FixedRowData;chart.SortInfo=this.SortInfo;chart.Tab=new ChartReportTab();chart.Tab.Frame=this.Frame;chart.Tab.Canvas=this.Canvas;chart.Tab.ChartBorder=this.Frame.ChartBorder;chart.Tab.Report=chart;chart.VScrollbar=new ChartVScrollbar();chart.VScrollbar.Frame=this.Frame;chart.VScrollbar.Canvas=this.Canvas;chart.VScrollbar.ChartBorder=this.Frame.ChartBorder;chart.VScrollbar.Report=chart;chart.VScrollbar.IsShowCallback=function(){if(_this54.DragYScroll)return true;return _this54.IsShowVScrollbar;};this.ChartPaint[0]=chart;//提示信息
|
|
12279
12279
|
var chartTooltip=new ChartCellTooltip();chartTooltip.Frame=this.Frame;chartTooltip.ChartBorder=this.Frame.ChartBorder;this.ChartTooltip=chartTooltip;//页脚
|
|
12280
12280
|
if(option&&option.PageInfo===true){var pageInfoChart=new ChartReportPageInfo();pageInfoChart.Frame=this.Frame;pageInfoChart.ChartBorder=this.Frame.ChartBorder;pageInfoChart.Canvas=this.Canvas;pageInfoChart.Report=chart;this.ChartPaint[1]=pageInfoChart;}if(option){if(IFrameSplitOperator.IsBool(option.IsShowHeader))chart.IsShowHeader=option.IsShowHeader;//是否显示表头
|
|
12281
12281
|
if(IFrameSplitOperator.IsNumber(option.FixedColumn))chart.FixedColumn=option.FixedColumn;//固定列
|
|
12282
12282
|
if(IFrameSplitOperator.IsNumber(option.BorderLine))this.Frame.BorderLine=option.BorderLine;//边框
|
|
12283
12283
|
if(IFrameSplitOperator.IsBool(option.TabShow))chart.Tab.IsShow=option.TabShow;if(IFrameSplitOperator.IsNumber(option.FixedRowCount))chart.FixedRowCount=option.FixedRowCount;//固定行
|
|
12284
12284
|
if(IFrameSplitOperator.IsBool(option.ItemBorder))chart.IsDrawBorder=option.ItemBorder;//单元格边框
|
|
12285
|
-
if(IFrameSplitOperator.IsNumber(option.SelectedModel))chart.SelectedModel=option.SelectedModel;if(IFrameSplitOperator.IsNonEmptyArray(option.FixedSymbol)){chart.FixedRowCount=0;this.FixedRowData.Type=1;this.FixedRowData.Symbol=[];var aryData=option.FixedSymbol;for(var i=0;i<aryData.length;++i){var item=aryData[i];this.FixedRowData.Symbol.push(item.Symbol);++chart.FixedRowCount;}}}var bRegisterKeydown=true;var bRegisterWheel=true;if(option){if(option.KeyDown===false){bRegisterKeydown=false;JSConsole.Chart.Log('[JSDealChartContainer::Create] not register keydown event.');}if(option.Wheel===false){bRegisterWheel=false;JSConsole.Chart.Log('[JSDealChartContainer::Create] not register wheel event.');}}if(bRegisterKeydown)this.UIElement.addEventListener("keydown",function(e){
|
|
12286
|
-
if(bRegisterWheel)this.UIElement.addEventListener("wheel",function(e){
|
|
12287
|
-
this.UIElement.ondblclick=function(e){
|
|
12288
|
-
this.UIElement.ontouchstart=function(e){
|
|
12285
|
+
if(IFrameSplitOperator.IsNumber(option.SelectedModel))chart.SelectedModel=option.SelectedModel;if(IFrameSplitOperator.IsNonEmptyArray(option.FixedSymbol)){chart.FixedRowCount=0;this.FixedRowData.Type=1;this.FixedRowData.Symbol=[];var aryData=option.FixedSymbol;for(var i=0;i<aryData.length;++i){var item=aryData[i];this.FixedRowData.Symbol.push(item.Symbol);++chart.FixedRowCount;}}}var bRegisterKeydown=true;var bRegisterWheel=true;if(option){if(option.KeyDown===false){bRegisterKeydown=false;JSConsole.Chart.Log('[JSDealChartContainer::Create] not register keydown event.');}if(option.Wheel===false){bRegisterWheel=false;JSConsole.Chart.Log('[JSDealChartContainer::Create] not register wheel event.');}}if(bRegisterKeydown)this.UIElement.addEventListener("keydown",function(e){_this54.OnKeyDown(e);},true);//键盘消息
|
|
12286
|
+
if(bRegisterWheel)this.UIElement.addEventListener("wheel",function(e){_this54.OnWheel(e);},true);//上下滚动消息
|
|
12287
|
+
this.UIElement.ondblclick=function(e){_this54.UIOnDblClick(e);};this.UIElement.onmousedown=function(e){_this54.UIOnMouseDown(e);};this.UIElement.onmouseup=function(e){_this54.UIOnMounseUp(e);};this.UIElement.oncontextmenu=function(e){_this54.UIOnContextMenu(e);};this.UIElement.onmousemove=function(e){_this54.UIOnMouseMove(e);};this.UIElement.onmouseout=function(e){_this54.UIOnMounseOut(e);};this.UIElement.onmouseleave=function(e){_this54.UIOnMouseleave(e);};//手机拖拽
|
|
12288
|
+
this.UIElement.ontouchstart=function(e){_this54.OnTouchStart(e);};this.UIElement.ontouchmove=function(e){_this54.OnTouchMove(e);};this.UIElement.ontouchend=function(e){_this54.OnTouchEnd(e);};};this.Draw=function(){if(this.UIElement.width<=0||this.UIElement.height<=0)return;this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
12289
12289
|
this.Canvas.lineWidth=pixelTatio;//手机端需要根据分辨率比调整线段宽度
|
|
12290
12290
|
if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash){this.Frame.Draw({IsEnableSplash:this.ChartSplashPaint.IsEnableSplash});this.ChartSplashPaint.Draw();return;}this.Frame.Draw();this.Frame.DrawLogo();//框架内图形
|
|
12291
|
-
for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.IsDrawFirst)item.Draw();}for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.IsDrawFirst)item.Draw();}if(this.GlobalOption.FlashBGCount>0){this.DelayDraw(500);}this.DrawTooltip(this.LastMouseStatus.TooltipStatus);};this.DelayDraw=function(frequency){var
|
|
12292
|
-
this.SetSymbolList=function(arySymbol,option){this.ClearData();this.ResetReportStatus();this.ResetSortStatus();if(IFrameSplitOperator.IsNonEmptyArray(arySymbol)){for(var i=0;i<arySymbol.length;++i){this.Data.Data.push(arySymbol[i]);}}var chart=this.ChartPaint[0];if(chart)chart.Data=this.Data;this.Draw();};this.ChangeSymbol=function(symbol,option){var
|
|
12291
|
+
for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.IsDrawFirst)item.Draw();}for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.IsDrawFirst)item.Draw();}if(this.GlobalOption.FlashBGCount>0){this.DelayDraw(500);}this.DrawTooltip(this.LastMouseStatus.TooltipStatus);};this.DelayDraw=function(frequency){var _this55=this;if(typeof this.FlashBGTimer=='number'){clearTimeout(this.FlashBGTimer);this.FlashBGTimer=null;}this.FlashBGTimer=setTimeout(function(){_this55.Draw();},frequency);};this.ResetReportStatus=function(){this.Data.XOffset=0;this.Data.YOffset=0;};this.ResetReportSelectStatus=function(){var chart=this.GetReportChart();if(chart){chart.SelectedRow=-1;chart.SelectedFixedRow=-1;}};this.ClearData=function(){this.SourceData.Data=[];this.Data.Data=[];this.BlockData=new _map2.default();};this.ClearMapStockData=function(){this.MapStockData=new _map2.default();};this.ResetSortStatus=function(){this.SortInfo.Field=-1;this.SortInfo.Sort=0;};//设置股票列表
|
|
12292
|
+
this.SetSymbolList=function(arySymbol,option){this.ClearData();this.ResetReportStatus();this.ResetSortStatus();if(IFrameSplitOperator.IsNonEmptyArray(arySymbol)){for(var i=0;i<arySymbol.length;++i){this.Data.Data.push(arySymbol[i]);}}var chart=this.ChartPaint[0];if(chart)chart.Data=this.Data;this.Draw();};this.ChangeSymbol=function(symbol,option){var _this56=this;this.Symbol=symbol;this.ClearData();this.ResetReportStatus();this.ResetSortStatus();this.ResetReportSelectStatus();if(option){if(IFrameSplitOperator.IsNumber(option.TabSelected)){var chartTab=this.GetTabChart();if(chartTab)chartTab.SelectedTabIndex=option.TabSelected;}if(Array.isArray(option.FixedSymbol)){var chart=this.GetReportChart();if(chart){chart.FixedRowCount=0;this.FixedRowData.Type=1;this.FixedRowData.Symbol=[];var aryData=option.FixedSymbol;for(var i=0;i<aryData.length;++i){var item=aryData[i];this.FixedRowData.Symbol.push(item.Symbol);++chart.FixedRowCount;}this.SetSizeChange(true);}}if(option.SortInfo){var item=option.SortInfo;if(IFrameSplitOperator.IsNumber(item.Field))this.SortInfo.Field=item.Field;if(IFrameSplitOperator.IsNumber(item.Sort))this.SortInfo.Sort=item.Sort;}if(IFrameSplitOperator.IsBool(option.IsReloadStockList)){var requestOption={Callback:null};if(this.Symbol)requestOption.Callback=function(){_this56.RequestMemberListData();};this.MapStockData=new _map2.default();this.RequestStockListData(requestOption);return;}}this.RequestMemberListData();};//设置全部的数据
|
|
12293
12293
|
this.SetFullData=function(data){this.ClearMapStockData();this.ClearData();this.ResetReportStatus();this.ResetSortStatus();this.ResetReportSelectStatus();//缓存所有数据
|
|
12294
12294
|
var arySymbol=[];if(IFrameSplitOperator.IsNonEmptyArray(data.data)){//0=证券代码 1=股票名称
|
|
12295
12295
|
for(var i=0;i<data.data.length;++i){var item=data.data[i];var symbol=item[0];var stock=null;if(this.MapStockData.has(symbol)){stock=this.MapStockData.get(symbol);}else{stock=new HQReportItem();stock.OriginalSymbol=symbol;this.MapStockData.set(symbol,stock);}stock.Symbol=this.GetSymbolNoSuffix(symbol);stock.Name=item[1];this.ReadStockJsonData(stock,item);arySymbol.push(symbol);}}//设置显示数据
|
|
@@ -12313,7 +12313,7 @@ this.GetStockData=function(symbol){if(!this.MapStockData)return null;if(!this.Ma
|
|
|
12313
12313
|
this.SetFlashBGItem=function(symbol,obj){var item={ID:obj.ID,Color:obj.Color,Count:1};if(IFrameSplitOperator.IsNumber(obj.Count))item.Count=obj.Count;if(IFrameSplitOperator.IsNumber(obj.Time))item.Time=obj.Time;else item.Time=Date.now();if(this.FlashBG.has(symbol)){var stockItem=this.FlashBG.get(symbol);stockItem.LastTime=item.Time;stockItem.Data.set(item.ID,item);}else{var stockItem={LastTime:item.Time,Data:new _map2.default([[item.ID,item]])};this.FlashBG.set(symbol,stockItem);}};this.GetFlashBGData=function(symbol,time){if(!this.FlashBG)return null;if(!this.FlashBG.has(symbol))return null;var timeDiff=3*1000;var stockItem=this.FlashBG.get(symbol);if(time-stockItem.LastTime>=timeDiff)//超时的删除
|
|
12314
12314
|
{this.FlashBG.delete(symbol);return null;}if(!stockItem.Data||stockItem.Data.size<=0){this.FlashBG.delete(symbol);return null;}var aryDelID=[];//超时需要参数的
|
|
12315
12315
|
var _iteratorNormalCompletion22=true;var _didIteratorError22=false;var _iteratorError22=undefined;try{for(var _iterator22=(0,_getIterator3.default)(stockItem.Data),_step22;!(_iteratorNormalCompletion22=(_step22=_iterator22.next()).done);_iteratorNormalCompletion22=true){var mapItem=_step22.value;var item=mapItem[1];if(time-item.Time>=timeDiff||item.Count<=0)aryDelID.push(item.ID);}}catch(err){_didIteratorError22=true;_iteratorError22=err;}finally{try{if(!_iteratorNormalCompletion22&&_iterator22.return){_iterator22.return();}}finally{if(_didIteratorError22){throw _iteratorError22;}}}if(IFrameSplitOperator.IsNonEmptyArray(aryDelID)){for(var i=0;i<aryDelID.length;++i){stockItem.Data.delete(aryDelID[i]);}if(stockItem.Data.size<=0){this.FlashBG.delete(symbol);return null;}}return stockItem;};//delay=是否延迟
|
|
12316
|
-
this.DelayUpdateStockData=function(){var
|
|
12316
|
+
this.DelayUpdateStockData=function(){var _this57=this;if(this.DelayUpdateTimer!=null){clearTimeout(this.DelayUpdateTimer);this.DelayUpdateTimer=null;}var frequency=this.DelayUpdateFrequency;this.DelayUpdateTimer=setTimeout(function(){_this57.UpdateStockData();},frequency);};this.UpdateStockData=function(){if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;var chart=this.ChartPaint[0];if(!chart)return;if(this.SortInfo&&this.SortInfo.Field>=0&&this.SortInfo.Sort>0){var column=chart.Column[this.SortInfo.Field];if(column.Sort==2){this.RequestStockSortData(column,this.SortInfo.Field,this.SortInfo.Sort);//远程排序
|
|
12317
12317
|
return;}}var arySymbol=chart.ShowSymbol;if(!IFrameSplitOperator.IsNonEmptyArray(arySymbol))return;this.RequestStockData(arySymbol);};//下载股票数据
|
|
12318
12318
|
this.RequestStockData=function(arySymbol){var self=this;if(this.NetworkFilter){var obj={Name:'JSDealChartContainer::RequestStockData',//类名::函数名
|
|
12319
12319
|
Explain:'报价列表股票数据',Request:{Data:{stocks:arySymbol}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){self.RecvStockData(data);self.AutoUpdate();});if(obj.PreventDefault==true)return;}//throw { Name:'JSReportChartContainer::RequestStockData', Error:'(报价列表股票数据)不提供内置测试数据' };
|
|
@@ -12372,7 +12372,7 @@ var result=this.MoveSelectedRow(-1);if(result){if(result.Redraw)this.Draw();if(r
|
|
|
12372
12372
|
var result=this.MoveSelectedRow(1);if(result){if(result.Redraw)this.Draw();if(result.Update)this.DelayUpdateStockData();}break;case 37://left
|
|
12373
12373
|
if(this.MoveXOffset(-1))this.Draw();break;case 39://right
|
|
12374
12374
|
if(this.MoveXOffset(1))this.Draw();break;}//不让滚动条滚动
|
|
12375
|
-
if(e.preventDefault)e.preventDefault();else e.returnValue=false;};this.UIOnDblClick=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(chart)chart.OnDblClick(x,y,e);};this.UIOnMouseDown=function(e){var
|
|
12375
|
+
if(e.preventDefault)e.preventDefault();else e.returnValue=false;};this.UIOnDblClick=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(chart)chart.OnDblClick(x,y,e);};this.UIOnMouseDown=function(e){var _this58=this;this.DragXScroll=null;this.DragYScroll=null;this.DragHeader=null;this.DragColumnWidth=null;this.DragMove={Click:{X:e.clientX,Y:e.clientY},Move:{X:e.clientX,Y:e.clientY},PreMove:{X:e.clientX,Y:e.clientY}};var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(chart){var dragColumnWidth=chart.PtInHeaderDragBorder(x,y);if(dragColumnWidth){this.DragColumnWidth={ClickPoint:{X:x,Y:y},LastPoint:{X:x,Y:y},//Click:{ X:e.clientX, Y:e.clientY },
|
|
12376
12376
|
//LastMove:{ X:e.clientX, Y:e.clientY},
|
|
12377
12377
|
ClickData:dragColumnWidth,ColumnWidth:dragColumnWidth.Column.Width};}else{var clickData=chart.OnMouseDown(x,y,e);if(!clickData)return;//if (e.button!=0) return;
|
|
12378
12378
|
if((clickData.Type==2||clickData.Type==4)&&(e.button==0||e.button==2))//点击行|固定行
|
|
@@ -12388,7 +12388,7 @@ if((clickData.Type==2||clickData.Type==4)&&(e.button==0||e.button==2))//点击
|
|
|
12388
12388
|
{if(this.MoveYOffset(-1)){this.Draw();this.DelayUpdateStockData();}}else if(scroll.Type==2)//底部按钮
|
|
12389
12389
|
{if(this.MoveYOffset(1)){this.Draw();this.DelayUpdateStockData();}}else if(scroll.Type==3)//滚动条
|
|
12390
12390
|
{this.DragYScroll={Click:{X:x,Y:y},LastMove:{X:x,Y:y}};}else if(scroll.Type==4)//滚动条内部
|
|
12391
|
-
{if(this.SetYOffset(scroll.Pos)){this.Draw();this.DelayUpdateStockData();}}}}}document.onmousemove=function(e){
|
|
12391
|
+
{if(this.SetYOffset(scroll.Pos)){this.Draw();this.DelayUpdateStockData();}}}}}document.onmousemove=function(e){_this58.DocOnMouseMove(e);};document.onmouseup=function(e){_this58.DocOnMouseUp(e);};};this.UIOnMounseUp=function(e){console.log('"UIOnMounseUp');};//去掉右键菜单
|
|
12392
12392
|
this.UIOnContextMenu=function(e){if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash==true)return;if(!this.IsShowRightMenu)return;var x=e.clientX-this.UIElement.getBoundingClientRect().left;var y=e.clientY-this.UIElement.getBoundingClientRect().top;if(typeof this.OnRightMenu=='function')this.OnRightMenu(x,y,e);//右键菜单事件
|
|
12393
12393
|
};this.OnRightMenu=function(x,y,e){e.preventDefault();};this.UIOnMouseMove=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;this.LastMouseStatus.OnMouseMove=null;var bDrawTooltip=false;if(this.LastMouseStatus.TooltipStatus)bDrawTooltip=true;this.LastMouseStatus.TooltipStatus=null;if(this.DragRow)return;if(this.DrawHeader)return;if(this.DragColumnWidth)return;var tabChart=this.GetTabChart();if(tabChart){var tabData=tabChart.PtInTab(x,y);if(tabData){var index=tabData.Index;if(tabChart.MoveOnTabIndex!=index){tabChart.MoveOnTabIndex=index;this.Draw();}}}this.LastMouseStatus.OnMouseMove={X:x,Y:y};var mouseStatus={Cursor:"default",Name:"Default"};;//鼠标状态
|
|
12394
12394
|
var report=this.GetReportChart();var bDraw=false;if(report){var dragHeaderWidth=report.PtInHeaderDragBorder(x,y);if(dragHeaderWidth){mouseStatus={Cursor:"col-resize",Name:"DragHeaderWidth"};JSConsole.Chart.Log("[JSReportChartContainer::UIOnMouseMove] drag column width ",dragHeaderWidth);}else{var tooltipData=report.GetTooltipData(x,y);//单元格提示信息
|
|
@@ -12435,18 +12435,18 @@ if(chart.SelectedModel==0)//不可翻页模式, 只能在当前页移动
|
|
|
12435
12435
|
{var pageStatus=chart.GetCurrentPageStatus();var pageSize=pageStatus.PageSize;var selected=pageStatus.SelectedRow;if(step>0){if(selected<0||selected<pageStatus.Start||selected>pageStatus.End){chart.SelectedRow=pageStatus.Start;result.Redraw=true;return result;}var offset=this.Data.YOffset;for(var i=0;i<step;++i){++selected;if(selected>pageStatus.End)++offset;if(selected>=this.Data.Data.length){selected=0;offset=0;}}result.Redraw=true;result.Update=offset!=this.Data.YOffset;chart.SelectedRow=selected;this.Data.YOffset=offset;return result;}else if(step<0){if(selected<0||selected<pageStatus.Start||selected>pageStatus.End){chart.SelectedRow=pageStatus.End;result.Redraw=true;return result;}step=Math.abs(step);var offset=this.Data.YOffset;for(var i=0;i<step;++i){--selected;if(selected<pageStatus.Start)--offset;if(selected<0){selected=this.Data.Data.length-1;offset=this.Data.Data.length-pageSize;if(offset<0)offset=0;}}result.Redraw=true;result.Update=offset!=this.Data.YOffset;chart.SelectedRow=selected;this.Data.YOffset=offset;return result;}}return null;};//左右移动
|
|
12436
12436
|
this.MoveXOffset=function(step){var chart=this.ChartPaint[0];if(!chart)return false;var maxOffset=chart.GetXScrollRange();if(maxOffset<=0)return false;if(step>0){if(this.Data.XOffset>=maxOffset)return false;for(var i=0;i<step;++i){if(this.Data.XOffset>=maxOffset)break;++this.Data.XOffset;}return true;}else if(step<0){if(this.Data.XOffset<=0)return false;step=Math.abs(step);for(var i=0;i<step;++i){if(this.Data.XOffset-1<0)break;--this.Data.XOffset;}return true;}return false;};this.SetXOffset=function(pos){if(!IFrameSplitOperator.IsNumber(pos))return false;var chart=this.ChartPaint[0];if(!chart)return false;var maxOffset=chart.GetXScrollRange();if(pos<0)pos=0;if(pos>maxOffset)pos=maxOffset;this.Data.XOffset=pos;return true;};this.SetYOffset=function(pos){if(!IFrameSplitOperator.IsNumber(pos))return false;var chart=this.ChartPaint[0];if(!chart)return false;var maxOffset=chart.GetYScrollRange();if(pos<0)pos=0;if(pos>maxOffset)pos=maxOffset;this.Data.YOffset=pos;return true;};this.GotoLastPage=function(){var chart=this.ChartPaint[0];if(!chart)return;//显示最后一屏
|
|
12437
12437
|
var pageSize=chart.GetPageSize(true);var offset=this.Data.Data.length-pageSize;if(offset<0)offset=0;this.Data.DataOffset=offset;};this.SetColumn=function(aryColunm,option){var chart=this.ChartPaint[0];if(!chart)return;chart.SetColumn(aryColunm);chart.SizeChange=true;if(option&&option.Redraw)this.Draw();};this.SetTab=function(aryTab,option){var chart=this.ChartPaint[0];;if(!chart)return;var chartTab=chart.Tab;if(!chartTab)return;chartTab.SetTabList(aryTab);if(option&&option.Redraw)this.Draw();};this.SetVScrollbar=function(option){var chart=this.GetReportChart();if(!chart)return;var scrollbar=chart.VScrollbar;if(!scrollbar)return;if(IFrameSplitOperator.IsBool(option.Enable))scrollbar.Enable=option.Enable;};this.SetSelectedTab=function(index,opiton){var chart=this.ChartPaint[0];;if(!chart)return;var chartTab=chart.Tab;if(!chartTab)return;chartTab.SelectedTabIndex=index;};this.ReloadResource=function(option){this.Frame.ReloadResource(option);for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.ReloadResource)item.ReloadResource(option);}if(option&&option.Redraw){this.SetSizeChange(true);this.Draw();}};//点表头
|
|
12438
|
-
this.OnClickHeader=function(clickData,e){var
|
|
12439
|
-
{var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_REPORT_LOCAL_SORT);if(event&&event.Callback){var sendData={Column:header.Column,SortInfo:sortInfo,SymbolList:this.Data.Data,Result:null};event.Callback(event,sendData,this);if(Array.isArray(sendData.Result))this.Data.Data=sendData.Result;}else{this.Data.Data.sort(function(left,right){return
|
|
12438
|
+
this.OnClickHeader=function(clickData,e){var _this59=this;var header=clickData.Header;if(header.Column&&(header.Column.Sort==1||header.Column.Sort==2)){var index=header.Index;var sortInfo={Field:this.SortInfo.Field,Sort:this.SortInfo.Sort};var arySortType=header.Column.SortType;if(sortInfo.Field!=index){sortInfo.Field=index;sortInfo.Sort=arySortType[0];}else{if(arySortType.length==1){sortInfo.Sort=arySortType[0];}else{for(var i=0;i<arySortType.length;++i){if(sortInfo.Sort==arySortType[i]){sortInfo.Sort=arySortType[(i+1)%arySortType.length];break;}}}}if(header.Column.Sort==1||header.Column.Sort==2){if(sortInfo.Sort==0){this.Data.Data=[];for(var i=0;i<this.SourceData.Data.length;++i){this.Data.Data.push(this.SourceData.Data[i]);}}else{if(header.Column.Sort==1)//本地排序
|
|
12439
|
+
{var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_REPORT_LOCAL_SORT);if(event&&event.Callback){var sendData={Column:header.Column,SortInfo:sortInfo,SymbolList:this.Data.Data,Result:null};event.Callback(event,sendData,this);if(Array.isArray(sendData.Result))this.Data.Data=sendData.Result;}else{this.Data.Data.sort(function(left,right){return _this59.LocalSort(left,right,header.Column,sortInfo.Sort);});}}else if(header.Column.Sort==2)//远程排序
|
|
12440
12440
|
{if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.SortInfo.Field=sortInfo.Field;this.SortInfo.Sort=sortInfo.Sort;this.Data.YOffset=0;this.ResetReportSelectStatus();this.RequestStockSortData(header.Column,sortInfo.Field,sortInfo.Sort);//远程排序
|
|
12441
12441
|
return;}}this.Data.YOffset=0;this.ResetReportSelectStatus();this.SortInfo.Field=sortInfo.Field;this.SortInfo.Sort=sortInfo.Sort;this.Draw();this.DelayUpdateStockData();}}};this.GetTabPopMenu=function(tabItem){var aryMenu=[];if(IFrameSplitOperator.IsNonEmptyArray(tabItem.ArySubMenu)){for(var i=0;i<tabItem.ArySubMenu.length;++i){var item=tabItem.ArySubMenu[i];var menuItem={Name:item.Title,Data:{ID:item.CommandID,Args:[item.ID]}};aryMenu.push(menuItem);}}return aryMenu;};this.PopupTabMenu=function(menuData,tab,e){if(!this.JSPopMenu)return;var rtTab=tab.Rect;var pixelRatio=GetDevicePixelRatio();var rtCell={Left:rtTab.Left/pixelRatio,Right:rtTab.Right/pixelRatio,Bottom:rtTab.Bottom/pixelRatio,Top:rtTab.Top/pixelRatio};rtCell.Width=rtCell.Right-rtCell.Left;rtCell.Height=rtCell.Bottom-rtCell.Top;var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();var offsetLeft=rtClient.left+rtScroll.Left;var offsetTop=rtClient.top+rtScroll.Top;rtCell.Left+=offsetLeft;rtCell.Right+=offsetLeft;rtCell.Top+=offsetTop;rtCell.Bottom+=offsetTop;this.JSPopMenu.CreatePopMenu(menuData);this.JSPopMenu.PopupMenuByTab(rtCell);if(e.preventDefault)e.preventDefault();if(e.stopPropagation)e.stopPropagation();};//点击标签
|
|
12442
|
-
this.OnClickTab=function(tabData,e){var
|
|
12442
|
+
this.OnClickTab=function(tabData,e){var _this60=this;if(!tabData.Tab)return;var redraw=false;var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var uiElement={Left:this.UIElement.getBoundingClientRect().left,Top:this.UIElement.getBoundingClientRect().top};if(tabData.Tab.IsMenu){var menuData={Menu:this.GetTabPopMenu(tabData.Tab),Position:JSPopMenu.POSITION_ID.TAB_MENU_ID};menuData.ClickCallback=function(data){_this60.OnClickTabPopMenu(tabData,data);};var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_REPORT_TABMENU);if(event&&event.Callback){var sendData={MenuData:menuData,Tab:tabData,PreventDefault:false,e:e};event.Callback(event,sendData,this);if(sendData.PreventDefault==true)return;}this.PopupTabMenu(menuData,tabData.Tab,e);}else{var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_REPORT_TAB);if(event&&event.Callback){var sendData={Data:tabData,IsSide:{X:x,Y:x},UIElement:uiElement,e:e,Redraw:redraw,PreventDefault:false};event.Callback(event,sendData,this);if(IFrameSplitOperator.IsBool(sendData.Redraw))redraw=sendData.Redraw;if(sendData.PreventDefault==true)return;}if(tabData.Tab.CommandID==JSCHART_MENU_ID.CMD_REPORT_CHANGE_BLOCK_ID){this.ExecuteMenuCommand(tabData.Tab.CommandID,[tabData.Tab.ID]);this.SetSelectedTab(tabData.Index);redraw=true;}}if(redraw)this.Draw();};this.OnClickTabPopMenu=function(tabData,data){JSConsole.Chart.Log('[JSReportChartContainer::OnClickTabPopMenu] ',tabData,data);var cmdID=data.Data.ID;//命令ID
|
|
12443
12443
|
var aryArgs=data.Data.Args;//参数
|
|
12444
12444
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND);//回调通知外部
|
|
12445
12445
|
if(event&&event.Callback){var data={PreventDefault:false,CommandID:cmdID,Args:aryArgs,SrcData:data,TabData:tabData};event.Callback(event,data,this);if(data.PreventDefault)return;}this.ExecuteMenuCommand(cmdID,aryArgs);this.SetSelectedTab(tabData.Index);this.Draw();};this.ExecuteMenuCommand=function(cmdID,aryArgs){JSConsole.Chart.Log('[JSReportChartContainer::ExecuteMenuCommand] cmdID=, aryArgs=',cmdID,aryArgs);var param=null,srcParam=null;//原始值
|
|
12446
12446
|
if(IFrameSplitOperator.IsNonEmptyArray(aryArgs)){srcParam=aryArgs[0];if(IFrameSplitOperator.IsNumber(aryArgs[0]))param=aryArgs[0];}switch(cmdID){case JSCHART_MENU_ID.CMD_REPORT_CHANGE_BLOCK_ID:if(srcParam)this.ChangeSymbol(param);break;}};this.SwapColumn=function(leftIndex,rightIndex,option){var reportChart=this.GetReportChart();if(!reportChart)return;if(!reportChart.SwapColumn(leftIndex,rightIndex))return;if(option&&option.Redraw){this.SetSizeChange(true);this.Draw();}};//本地排序
|
|
12447
|
-
this.LocalSort=function(left,right,column,sortType){switch(column.Type){case REPORT_COLUMN_ID.SYMBOL_ID:case REPORT_COLUMN_ID.NAME_ID:return this.LocalStringSort(left,right,column,sortType);case REPORT_COLUMN_ID.NAME_EX_ID:return this.LocalNameExSort(left,right,column,sortType);case REPORT_COLUMN_ID.PRICE_ID:case REPORT_COLUMN_ID.VOL_ID:case REPORT_COLUMN_ID.INCREASE_ID:case REPORT_COLUMN_ID.UPDOWN_ID:case REPORT_COLUMN_ID.BUY_PRICE_ID:case REPORT_COLUMN_ID.SELL_PRICE_ID:case REPORT_COLUMN_ID.AMOUNT_ID:case REPORT_COLUMN_ID.BUY_VOL_ID:case REPORT_COLUMN_ID.SELL_VOL_ID:case REPORT_COLUMN_ID.YCLOSE_ID:case REPORT_COLUMN_ID.OPEN_ID:case REPORT_COLUMN_ID.HIGH_ID:case REPORT_COLUMN_ID.LOW_ID:case REPORT_COLUMN_ID.AVERAGE_PRICE_ID:case REPORT_COLUMN_ID.OUTSTANDING_SHARES_ID:case REPORT_COLUMN_ID.TOTAL_SHARES_ID:case REPORT_COLUMN_ID.CIRC_MARKET_VALUE_ID:case REPORT_COLUMN_ID.MARKET_VALUE_ID:case REPORT_COLUMN_ID.EXCHANGE_RATE_ID:case REPORT_COLUMN_ID.AMPLITUDE_ID:case REPORT_COLUMN_ID.LIMIT_HIGH_ID:case REPORT_COLUMN_ID.LIMIT_LOW_ID:case REPORT_COLUMN_ID.VOL_IN_ID:case REPORT_COLUMN_ID.VOL_OUT_ID:return this.LocalNumberSort(left,right,column,sortType);case REPORT_COLUMN_ID.CUSTOM_NUMBER_TEXT_ID://自定义数值字段
|
|
12447
|
+
this.LocalSort=function(left,right,column,sortType){switch(column.Type){case REPORT_COLUMN_ID.SYMBOL_ID:case REPORT_COLUMN_ID.NAME_ID:return this.LocalStringSort(left,right,column,sortType);case REPORT_COLUMN_ID.NAME_EX_ID:return this.LocalNameExSort(left,right,column,sortType);case REPORT_COLUMN_ID.PRICE_ID:case REPORT_COLUMN_ID.VOL_ID:case REPORT_COLUMN_ID.INCREASE_ID:case REPORT_COLUMN_ID.UPDOWN_ID:case REPORT_COLUMN_ID.BUY_PRICE_ID:case REPORT_COLUMN_ID.SELL_PRICE_ID:case REPORT_COLUMN_ID.AMOUNT_ID:case REPORT_COLUMN_ID.BUY_VOL_ID:case REPORT_COLUMN_ID.SELL_VOL_ID:case REPORT_COLUMN_ID.YCLOSE_ID:case REPORT_COLUMN_ID.OPEN_ID:case REPORT_COLUMN_ID.HIGH_ID:case REPORT_COLUMN_ID.LOW_ID:case REPORT_COLUMN_ID.AVERAGE_PRICE_ID:case REPORT_COLUMN_ID.OUTSTANDING_SHARES_ID:case REPORT_COLUMN_ID.TOTAL_SHARES_ID:case REPORT_COLUMN_ID.CIRC_MARKET_VALUE_ID:case REPORT_COLUMN_ID.MARKET_VALUE_ID:case REPORT_COLUMN_ID.EXCHANGE_RATE_ID:case REPORT_COLUMN_ID.AMPLITUDE_ID:case REPORT_COLUMN_ID.LIMIT_HIGH_ID:case REPORT_COLUMN_ID.LIMIT_LOW_ID:case REPORT_COLUMN_ID.VOL_IN_ID:case REPORT_COLUMN_ID.VOL_OUT_ID:case REPORT_COLUMN_ID.DATE_ID:return this.LocalNumberSort(left,right,column,sortType);case REPORT_COLUMN_ID.CUSTOM_NUMBER_TEXT_ID://自定义数值字段
|
|
12448
12448
|
return this.LoacCustomNumberSort(left,right,column,sortType);case REPORT_COLUMN_ID.CUSTOM_STRING_TEXT_ID://自定义字符串字段
|
|
12449
|
-
return this.LoacCustomStringSort(left,right,column,sortType);case REPORT_COLUMN_ID.CUSTOM_DATETIME_TEXT_ID:return this.LoacCustomDateTimeSort(left,right,column,sortType);default:return 0;}};this.GetStockExtendData=function(symbol,column){if(IFrameSplitOperator.IsNumber(column.DataIndex)){if(column.DataIndex<0)return null;var stock=this.GetStockData(symbol);if(!stock||!stock.ExtendData)return null;return stock.ExtendData[column.DataIndex];}if(IFrameSplitOperator.IsNumber(column.BlockIndex)){if(column.BlockIndex<0)return null;var stock=this.GetBlockData(symbol);if(!stock)return null;return stock[column.BlockIndex];}return null;};this.LocalNameExSort=function(left,right,column,sortType){var leftStock=this.GetStockData(left);var rightStock=this.GetStockData(right);var leftValue="",rightValue="";if(sortType==2){leftValue="啊啊啊啊啊";rightValue="啊啊啊啊啊";}if(leftStock&&leftStock.Name)leftValue=leftStock.Name;if(rightStock&&rightStock.Name)rightValue=rightStock.Name;if(sortType==1){if(rightValue<leftValue)return-1;else if(rightValue<leftValue)return 1;else return 0;}else{if(leftValue<rightValue)return-1;else if(leftValue>rightValue)return 1;else return 0;}};this.LocalStringSort=function(left,right,column,sortType){var leftStock=this.GetStockData(left);var rightStock=this.GetStockData(right);var leftValue="",rightValue="";if(sortType==2){leftValue="啊啊啊啊啊";rightValue="啊啊啊啊啊";}var filedName=MAP_COLUMN_FIELD.get(column.Type);if(leftStock&&leftStock[filedName])leftValue=leftStock[filedName];if(rightStock&&rightStock[filedName])rightValue=rightStock[filedName];if(sortType==1){if(rightValue<leftValue)return-1;else if(rightValue<leftValue)return 1;else return 0;}else{if(leftValue<rightValue)return-1;else if(leftValue>rightValue)return 1;else return 0;}};this.LocalNumberSort=function(left,right,column,sortType){var leftStock=this.GetStockData(left);var rightStock=this.GetStockData(right);var leftValue=-99999999999999,rightValue=-99999999999999;if(sortType==2)leftValue=rightValue=99999999999999;var filedName=MAP_COLUMN_FIELD.get(column.Type);if(leftStock&&IFrameSplitOperator.IsNumber(leftStock[filedName]))leftValue=leftStock[filedName];if(rightStock&&IFrameSplitOperator.IsNumber(rightStock[filedName]))rightValue=rightStock[filedName];if(sortType==1){if(rightValue<leftValue)return-1;else if(rightValue<leftValue)return 1;else return 0;}else{if(leftValue<rightValue)return-1;else if(leftValue>rightValue)return 1;else return 0;}};this.LoacCustomNumberSort=function(left,right,column,sortType){var leftValue=-99999999999999,rightValue=-99999999999999;if(sortType==2)leftValue=rightValue=99999999999999;var value=this.GetStockExtendData(left,column);if(IFrameSplitOperator.IsNumber(value))leftValue=value;var value=this.GetStockExtendData(right,column);if(IFrameSplitOperator.IsNumber(value))rightValue=value;if(sortType==1){if(rightValue<leftValue)return-1;else if(rightValue<leftValue)return 1;else return 0;}else{if(leftValue<rightValue)return-1;else if(leftValue>rightValue)return 1;else return 0;}};this.LoacCustomDateTimeSort=function(left,right,column,sortType){var leftValue=-99999999999999,rightValue=-99999999999999;if(sortType==2)leftValue=rightValue=99999999999999;var value=this.GetStockExtendData(left,column);if(IFrameSplitOperator.IsNumber(value))leftValue=value;var value=this.GetStockExtendData(right,column);if(IFrameSplitOperator.IsNumber(value))rightValue=value;if(sortType==1){if(rightValue<leftValue)return-1;else if(rightValue<leftValue)return 1;else return 0;}else{if(leftValue<rightValue)return-1;else if(leftValue>rightValue)return 1;else return 0;}};this.RequestStockSortData=function(column,filedid,sortType){var chart=this.ChartPaint[0];if(!chart)return;var self=this;var startIndex=this.Data.YOffset;var pageSize=chart.GetPageSize();var endIndex=startIndex+pageSize;if(endIndex>=this.Data.Data.length)endIndex=this.Data.Data.length-1;if(this.NetworkFilter){var obj={Name:'JSDealChartContainer::RequestStockSortData',//类名::函数名
|
|
12449
|
+
return this.LoacCustomStringSort(left,right,column,sortType);case REPORT_COLUMN_ID.CUSTOM_DATETIME_TEXT_ID:return this.LoacCustomDateTimeSort(left,right,column,sortType);default:return 0;}};this.GetStockExtendData=function(symbol,column){if(IFrameSplitOperator.IsNumber(column.DataIndex)){if(column.DataIndex<0)return null;var stock=this.GetStockData(symbol);if(!stock||!stock.ExtendData)return null;return stock.ExtendData[column.DataIndex];}if(IFrameSplitOperator.IsNumber(column.BlockIndex)){if(column.BlockIndex<0)return null;var stock=this.GetBlockData(symbol);if(!stock)return null;return stock[column.BlockIndex];}return null;};this.LocalNameExSort=function(left,right,column,sortType){var leftStock=this.GetStockData(left);var rightStock=this.GetStockData(right);var leftValue="",rightValue="";if(sortType==2){leftValue="啊啊啊啊啊";rightValue="啊啊啊啊啊";}if(leftStock&&leftStock.Name)leftValue=leftStock.Name;if(rightStock&&rightStock.Name)rightValue=rightStock.Name;if(sortType==1){if(rightValue<leftValue)return-1;else if(rightValue<leftValue)return 1;else return 0;}else{if(leftValue<rightValue)return-1;else if(leftValue>rightValue)return 1;else return 0;}};this.LocalStringSort=function(left,right,column,sortType){var leftStock=this.GetStockData(left);var rightStock=this.GetStockData(right);var leftValue="",rightValue="";if(sortType==2){leftValue="啊啊啊啊啊";rightValue="啊啊啊啊啊";}var filedName=MAP_COLUMN_FIELD.get(column.Type);if(leftStock&&leftStock[filedName])leftValue=leftStock[filedName];if(rightStock&&rightStock[filedName])rightValue=rightStock[filedName];if(sortType==1){if(rightValue<leftValue)return-1;else if(rightValue<leftValue)return 1;else return 0;}else{if(leftValue<rightValue)return-1;else if(leftValue>rightValue)return 1;else return 0;}};this.LocalNumberSort=function(left,right,column,sortType){var leftStock=this.GetStockData(left);var rightStock=this.GetStockData(right);var leftValue=-99999999999999,rightValue=-99999999999999;if(sortType==2)leftValue=rightValue=99999999999999;var filedName=MAP_COLUMN_FIELD.get(column.Type);if(leftStock&&IFrameSplitOperator.IsNumber(leftStock[filedName]))leftValue=leftStock[filedName];if(rightStock&&IFrameSplitOperator.IsNumber(rightStock[filedName]))rightValue=rightStock[filedName];if(sortType==1){if(rightValue<leftValue)return-1;else if(rightValue<leftValue)return 1;else return 0;}else{if(leftValue<rightValue)return-1;else if(leftValue>rightValue)return 1;else return 0;}};this.LoacCustomNumberSort=function(left,right,column,sortType){var leftValue=-99999999999999,rightValue=-99999999999999;if(sortType==2)leftValue=rightValue=99999999999999;var value=this.GetStockExtendData(left,column);if(IFrameSplitOperator.IsNumber(value))leftValue=value;var value=this.GetStockExtendData(right,column);if(IFrameSplitOperator.IsNumber(value))rightValue=value;if(sortType==1){if(rightValue<leftValue)return-1;else if(rightValue<leftValue)return 1;else return 0;}else{if(leftValue<rightValue)return-1;else if(leftValue>rightValue)return 1;else return 0;}};this.LoacCustomDateTimeSort=function(left,right,column,sortType){var leftValue=-99999999999999,rightValue=-99999999999999;if(sortType==2)leftValue=rightValue=99999999999999;var value=this.GetStockExtendData(left,column);if(IFrameSplitOperator.IsNumber(value))leftValue=value;var value=this.GetStockExtendData(right,column);if(IFrameSplitOperator.IsNumber(value))rightValue=value;if(sortType==1){if(rightValue<leftValue)return-1;else if(rightValue<leftValue)return 1;else return 0;}else{if(leftValue<rightValue)return-1;else if(leftValue>rightValue)return 1;else return 0;}};this.LoacCustomStringSort=function(left,right,column,sortType){var leftValue="",rightValue="";if(sortType==2)rightValue=leftValue="啊啊啊啊啊";var value=this.GetStockExtendData(left,column);if(IFrameSplitOperator.IsString(value))leftValue=value;var value=this.GetStockExtendData(right,column);if(IFrameSplitOperator.IsString(value))rightValue=value;if(sortType==1){if(rightValue<leftValue)return-1;else if(rightValue<leftValue)return 1;else return 0;}else{if(leftValue<rightValue)return-1;else if(leftValue>rightValue)return 1;else return 0;}};this.RequestStockSortData=function(column,filedid,sortType){var chart=this.ChartPaint[0];if(!chart)return;var self=this;var startIndex=this.Data.YOffset;var pageSize=chart.GetPageSize();var endIndex=startIndex+pageSize;if(endIndex>=this.Data.Data.length)endIndex=this.Data.Data.length-1;if(this.NetworkFilter){var obj={Name:'JSDealChartContainer::RequestStockSortData',//类名::函数名
|
|
12450
12450
|
Explain:'报价列表股票排序数据',Request:{Data:{range:{start:startIndex,end:endIndex,count:this.Data.Data.length},column:{name:column.Title,type:column.Type,index:filedid,ID:column.ID},sort:sortType,symbol:this.Symbol,name:this.Name,pageSize:pageSize}},Self:this,PreventDefault:false};if(chart.FixedRowCount>0&&chart.FixedRowData.Type==1){var arySymbol=[];for(var i=0;i<chart.FixedRowData.Symbol.length;++i){var item=chart.FixedRowData.Symbol[i];if(item)arySymbol.push(item);}obj.Request.FixedSymbol=arySymbol;}this.NetworkFilter(obj,function(data){self.RecvStockSortData(data);self.AutoUpdate();});if(obj.PreventDefault==true)return;}//throw { Name:'JSReportChartContainer::RequestStockSortData', Error:'(报价列表股票排序数据)不提供内置测试数据' };
|
|
12451
12451
|
};this.RecvStockSortData=function(data){//更新股票数据
|
|
12452
12452
|
var arySymbol=[];if(IFrameSplitOperator.IsNonEmptyArray(data.data)){for(var i=0;i<data.data.length;++i){var item=data.data[i];//数据
|
|
@@ -12492,7 +12492,7 @@ SYMBOL_NAME_ID:99,CUSTOM_STRING_TEXT_ID:100,//自定义字符串文本
|
|
|
12492
12492
|
CUSTOM_NUMBER_TEXT_ID:101,//自定义数值型
|
|
12493
12493
|
CUSTOM_DATETIME_TEXT_ID:102,//自定义日期类型
|
|
12494
12494
|
CUSTOM_ICON_ID:103//自定义图标
|
|
12495
|
-
};var MAP_COLUMN_FIELD=new _map2.default([[REPORT_COLUMN_ID.SYMBOL_ID,"Symbol"],[REPORT_COLUMN_ID.NAME_ID,"Name"],[REPORT_COLUMN_ID.PRICE_ID,"Price"],[REPORT_COLUMN_ID.INCREASE_ID,"Increase"],[REPORT_COLUMN_ID.UPDOWN_ID,"UpDown"],[REPORT_COLUMN_ID.VOL_ID,"Vol"],[REPORT_COLUMN_ID.BUY_PRICE_ID,"BuyPrice"],[REPORT_COLUMN_ID.SELL_PRICE_ID,"SellPrice"],[REPORT_COLUMN_ID.AMOUNT_ID,"Amount"],[REPORT_COLUMN_ID.BUY_VOL_ID,"BuyVol"],[REPORT_COLUMN_ID.SELL_VOL_ID,"SellVol"],[REPORT_COLUMN_ID.YCLOSE_ID,"YClose"],[REPORT_COLUMN_ID.OPEN_ID,"Open"],[REPORT_COLUMN_ID.HIGH_ID,"High"],[REPORT_COLUMN_ID.LOW_ID,"Low"],[REPORT_COLUMN_ID.AVERAGE_PRICE_ID,"AvPrice"],[REPORT_COLUMN_ID.OUTSTANDING_SHARES_ID,"OutShares"],[REPORT_COLUMN_ID.TOTAL_SHARES_ID,"TotalShares"],[REPORT_COLUMN_ID.CIRC_MARKET_VALUE_ID,"CircMarketValue"],[REPORT_COLUMN_ID.MARKET_VALUE_ID,"MarketValue"],[REPORT_COLUMN_ID.EXCHANGE_RATE_ID,"Exchange"],[REPORT_COLUMN_ID.AMPLITUDE_ID,"Amplitude"],[REPORT_COLUMN_ID.LIMIT_HIGH_ID,"LimitHigh"],[REPORT_COLUMN_ID.LIMIT_LOW_ID,"LimitLow"],[REPORT_COLUMN_ID.VOL_IN_ID,"VolIn"],[REPORT_COLUMN_ID.VOL_OUT_ID,"VolOut"],[REPORT_COLUMN_ID.NAME_EX_ID,"NameEx"]]);function ChartReport(){this.Canvas;//画布
|
|
12495
|
+
};var MAP_COLUMN_FIELD=new _map2.default([[REPORT_COLUMN_ID.SYMBOL_ID,"Symbol"],[REPORT_COLUMN_ID.NAME_ID,"Name"],[REPORT_COLUMN_ID.PRICE_ID,"Price"],[REPORT_COLUMN_ID.INCREASE_ID,"Increase"],[REPORT_COLUMN_ID.UPDOWN_ID,"UpDown"],[REPORT_COLUMN_ID.VOL_ID,"Vol"],[REPORT_COLUMN_ID.BUY_PRICE_ID,"BuyPrice"],[REPORT_COLUMN_ID.SELL_PRICE_ID,"SellPrice"],[REPORT_COLUMN_ID.AMOUNT_ID,"Amount"],[REPORT_COLUMN_ID.BUY_VOL_ID,"BuyVol"],[REPORT_COLUMN_ID.SELL_VOL_ID,"SellVol"],[REPORT_COLUMN_ID.YCLOSE_ID,"YClose"],[REPORT_COLUMN_ID.OPEN_ID,"Open"],[REPORT_COLUMN_ID.HIGH_ID,"High"],[REPORT_COLUMN_ID.LOW_ID,"Low"],[REPORT_COLUMN_ID.AVERAGE_PRICE_ID,"AvPrice"],[REPORT_COLUMN_ID.OUTSTANDING_SHARES_ID,"OutShares"],[REPORT_COLUMN_ID.TOTAL_SHARES_ID,"TotalShares"],[REPORT_COLUMN_ID.CIRC_MARKET_VALUE_ID,"CircMarketValue"],[REPORT_COLUMN_ID.MARKET_VALUE_ID,"MarketValue"],[REPORT_COLUMN_ID.EXCHANGE_RATE_ID,"Exchange"],[REPORT_COLUMN_ID.AMPLITUDE_ID,"Amplitude"],[REPORT_COLUMN_ID.LIMIT_HIGH_ID,"LimitHigh"],[REPORT_COLUMN_ID.LIMIT_LOW_ID,"LimitLow"],[REPORT_COLUMN_ID.VOL_IN_ID,"VolIn"],[REPORT_COLUMN_ID.VOL_OUT_ID,"VolOut"],[REPORT_COLUMN_ID.NAME_EX_ID,"NameEx"],[REPORT_COLUMN_ID.DATE_ID,"Date"]]);function ChartReport(){this.Canvas;//画布
|
|
12496
12496
|
this.ChartBorder;//边框信息
|
|
12497
12497
|
this.ChartFrame;//框架画法
|
|
12498
12498
|
this.Name;//名称
|
|
@@ -12532,8 +12532,11 @@ this.FixedRowHeight=0;//固定行高度
|
|
|
12532
12532
|
this.RowHeight=0;//行高度
|
|
12533
12533
|
this.BottomToolbarHeight=0;//底部工具条高度
|
|
12534
12534
|
this.IsShowAllColumn=false;//是否已显示所有列
|
|
12535
|
-
|
|
12536
|
-
|
|
12535
|
+
//{
|
|
12536
|
+
// Type:列id, Title:标题, TextAlign:文字对齐方式, MaxText:文字最大宽度 , TextColor:文字颜色, Sort:0=不支持排序 1=本地排序 0=远程排序,
|
|
12537
|
+
// Icon:{ Family:"iconfont", Size:12, Symbol:"", Margin: { Left:, Bottom }}
|
|
12538
|
+
//}
|
|
12539
|
+
this.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:"擎擎擎擎"},{Type:REPORT_COLUMN_ID.INCREASE_ID,Title:"涨幅%",TextAlign:"right",Width:null,MaxText:"-888.88"}];this.RectClient={};//{ Rect:rtItem, Stock:stock, Index:index, Column:column, RowType:rowType, Type:drawInfo.Tooltip.Type, Data:{ AryText:[ {Text:xx} ]} };
|
|
12537
12540
|
//Type:1=数据截断
|
|
12538
12541
|
// { Text, Color, Title:, TitleColor, Space, Margin:{ Left, Top, Right, Bottom }}
|
|
12539
12542
|
this.TooltipRect=[];this.ReloadResource=function(resource){this.UpColor=g_JSChartResource.Report.UpTextColor;this.DownColor=g_JSChartResource.Report.DownTextColor;this.UnchagneColor=g_JSChartResource.Report.UnchagneTextColor;this.BorderColor=g_JSChartResource.Report.BorderColor;//边框线
|
|
@@ -12543,7 +12546,7 @@ this.HeaderFontConfig={Size:g_JSChartResource.Report.Header.Font.Size,Name:g_JSC
|
|
|
12543
12546
|
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};//表格内容配置
|
|
12544
12547
|
this.ItemFontConfig={Size:g_JSChartResource.Report.Item.Font.Size,Name:g_JSChartResource.Report.Item.Font.Name};this.ItemMergin={Left:g_JSChartResource.Report.Item.Mergin.Left,Right:g_JSChartResource.Report.Item.Mergin.Right,Top:g_JSChartResource.Report.Item.Mergin.Top,Bottom:g_JSChartResource.Report.Item.Mergin.Bottom};this.BarMergin={Top:g_JSChartResource.Report.Item.BarMergin.Top,Left:g_JSChartResource.Report.Item.BarMergin.Left,Right:g_JSChartResource.Report.Item.BarMergin.Right,Bottom:g_JSChartResource.Report.Item.BarMergin.Bottom};this.LimitBorderColor=g_JSChartResource.Report.LimitBorder.Color;this.LimitMergin={Top:g_JSChartResource.Report.LimitBorder.Mergin.Top,Left:g_JSChartResource.Report.LimitBorder.Mergin.Left,Right:g_JSChartResource.Report.LimitBorder.Mergin.Right,Bottom:g_JSChartResource.Report.LimitBorder.Mergin.Bottom};for(var i=0;i<this.Column.length;++i){var item=this.Column[i];if(item.Type==REPORT_COLUMN_ID.INDEX_ID)item.TextColor=g_JSChartResource.Report.FieldColor.Index;else if(item.Type==REPORT_COLUMN_ID.SYMBOL_ID)item.TextColor=g_JSChartResource.Report.FieldColor.Symbol;else if(item.Type==REPORT_COLUMN_ID.NAME_ID)item.TextColor=g_JSChartResource.Report.FieldColor.Name;else if(item.Type==REPORT_COLUMN_ID.VOL_ID)item.TextColor=g_JSChartResource.Report.FieldColor.Vol;else if(item.Type==REPORT_COLUMN_ID.BUY_VOL_ID)item.TextColor=g_JSChartResource.Report.FieldColor.Vol;else if(item.Type==REPORT_COLUMN_ID.SELL_VOL_ID)item.TextColor=g_JSChartResource.Report.FieldColor.Vol;else if(item.Type==REPORT_COLUMN_ID.AMOUNT_ID)item.TextColor=g_JSChartResource.Report.FieldColor.Amount;else if(item.Type==REPORT_COLUMN_ID.VOL_IN_ID)item.TextColor=g_JSChartResource.Report.DownTextColor;else if(item.Type==REPORT_COLUMN_ID.VOL_OUT_ID)item.TextColor=g_JSChartResource.Report.UpTextColor;else item.TextColor=g_JSChartResource.Report.FieldColor.Text;}if(this.Tab)this.Tab.ReloadResource(resource);if(this.VScrollbar)this.VScrollbar.ReloadResource(resource);};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.GetDefaultColunm(item.Type);if(!colItem)continue;if(item.Title)colItem.Title=item.Title;if(item.TextAlign)colItem.TextAlign=item.TextAlign;if(item.TextColor)colItem.TextColor=item.TextColor;if(item.HeaderColor)colItem.HeaderColor=item.HeaderColor;if(item.MaxText)colItem.MaxText=item.MaxText;if(item.ID)colItem.ID=item.ID;if(item.FullColBGColor)colItem.FullColBGColor=item.FullColBGColor;//整列背景色
|
|
12545
12548
|
if(item.HeaderBGColor)colItem.HeaderBGColor=item.HeaderBGColor;//表头背景色
|
|
12546
|
-
if(IFrameSplitOperator.IsNumber(item.Sort))colItem.Sort=item.Sort;if(IFrameSplitOperator.IsNumber(item.FixedWidth))colItem.FixedWidth=item.FixedWidth;if(IFrameSplitOperator.IsBool(item.EnableDragWidth))colItem.EnableDragWidth=item.EnableDragWidth;if(IFrameSplitOperator.IsBool(item.IsDrawCallback))colItem.IsDrawCallback=item.IsDrawCallback;else colItem.IsDrawCallback=false;if(item.Sort==1||item.Sort==2)//1本地排序 2=远程排序
|
|
12549
|
+
if(IFrameSplitOperator.IsNumber(item.Sort))colItem.Sort=item.Sort;if(IFrameSplitOperator.IsNumber(item.FixedWidth))colItem.FixedWidth=item.FixedWidth;if(IFrameSplitOperator.IsBool(item.EnableDragWidth))colItem.EnableDragWidth=item.EnableDragWidth;if(IFrameSplitOperator.IsBool(item.IsDrawCallback))colItem.IsDrawCallback=item.IsDrawCallback;else colItem.IsDrawCallback=false;if(item.Icon)colItem.Icon=item.Icon;if(item.Sort==1||item.Sort==2)//1本地排序 2=远程排序
|
|
12547
12550
|
{colItem.SortType=[1,2];//默认 降序 ,升序
|
|
12548
12551
|
if(IFrameSplitOperator.IsNonEmptyArray(item.SortType))colItem.SortType=item.SortType.slice();}if(item.Type==REPORT_COLUMN_ID.CUSTOM_STRING_TEXT_ID){if(!IFrameSplitOperator.IsNumber(item.DataIndex)&&!IFrameSplitOperator.IsNumber(item.BlockIndex))continue;colItem.FormatType=0;//0=默认格式 1=长度不够使用...
|
|
12549
12552
|
if(IFrameSplitOperator.IsNumber(item.DataIndex))colItem.DataIndex=item.DataIndex;//数据在扩展数据索引列
|
|
@@ -12566,8 +12569,10 @@ this.Canvas.clip();};this.Draw=function(){this.ShowSymbol=[];this.TooltipRect=[]
|
|
|
12566
12569
|
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 是否重新计算
|
|
12567
12570
|
{if(recalculate)this.CalculateSize();var size=this.RowCount;return size;};this.GetCurrentPageStatus=function()//{ Start:起始索引, End:结束索引(数据), PageSize:页面可以显示几条记录, IsEnd:是否是最后一页, IsSinglePage:是否只有一页数据}
|
|
12568
12571
|
{var result={Start:this.Data.YOffset,PageSize:this.RowCount,IsEnd:false,SelectedRow:this.SelectedRow,IsSinglePage:false,DataCount:0};if(IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)){result.End=this.Data.YOffset+this.RowCount-1;result.IsSinglePage=this.Data.Data.length<=this.RowCount;result.DataCount=this.Data.Data.length;if(result.End>=this.Data.Data.length-1)result.IsEnd=true;if(result.End>=this.Data.Data.length)result.End=this.Data.Data.length-1;}else{result.Start=0;result.End=0;result.IsEnd=true;result.IsSinglePage=true;}return result;};this.CalculateSize=function()//计算大小
|
|
12569
|
-
{if(this.Tab&&this.Tab.IsShow){this.Tab.CalculateSize();this.BottomToolbarHeight=this.Tab.Height;}else{this.BottomToolbarHeight=0;}if(this.VScrollbar&&this.VScrollbar.Enable)this.VScrollbar.CalculateSize();this.UpdateCacheData();var pixelRatio=GetDevicePixelRatio();this.HeaderFont=this.HeaderFontConfig.Size*pixelRatio+'px '+this.HeaderFontConfig.Name;this.ItemFont=this.ItemFontConfig.Size*pixelRatio+'px '+this.ItemFontConfig.Name;this.ItemFixedFont=this.ItemFixedFontConfg.Size*pixelRatio+'px '+this.ItemFixedFontConfg.Name;this.ItemSymbolFont=this.ItemSymbolFontConfig.Size*pixelRatio+'px '+this.ItemSymbolFontConfig.Name;this.ItemNameFont=this.ItemNameFontConfg.Size*pixelRatio+'px '+this.ItemNameFontConfg.Name;this.RowHeight=this.GetFontHeight(this.ItemFont,"擎")+this.ItemMergin.Top+this.ItemMergin.Bottom;this.FixedRowHeight=this.GetFontHeight(this.ItemFixedFont,"擎")+this.ItemMergin.Top+this.ItemMergin.Bottom;this.Canvas.font=this.ItemFont;var itemWidth=0;for(var i=0;i<this.Column.length;++i){var item=this.Column[i];if(item.Type==REPORT_COLUMN_ID.SYMBOL_NAME_ID){this.Canvas.font=this.ItemNameFont;var nameWidth=this.Canvas.measureText(item.MaxText).width;var nameHeight=this.GetFontHeight(this.ItemNameFont,"擎");this.ItemNameHeight=nameHeight;this.Canvas.font=this.ItemSymbolFont;var symbolWidth=this.Canvas.measureText(item.MaxText).width;var symboHeight=this.GetFontHeight(this.ItemSymbolFont,"擎");this.Canvas.font=this.ItemFont;itemWidth=Math.max(nameWidth,symbolWidth);item.Width=itemWidth+4+this.ItemMergin.Left+this.ItemMergin.Right;var rowHeight=nameHeight+symboHeight+this.ItemMergin.Top+this.ItemMergin.Bottom;if(rowHeight>this.RowHeight)this.RowHeight=rowHeight;if(rowHeight>this.FixedRowHeight)this.FixedRowHeight=rowHeight;}else{if(IFrameSplitOperator.IsNumber(item.FixedWidth))itemWidth=item.FixedWidth;else itemWidth=this.Canvas.measureText(item.MaxText).width;item.Width=itemWidth+4+this.ItemMergin.Left+this.ItemMergin.Right;}}this.Canvas.font=this.HeaderFont;for(var i=0;i<this.Column.length;++i){var item=this.Column[i];if(!item.Title||item.Title.length<=0)continue;var text=item.Title;if(item.Sort>0)text+="↓";itemWidth=this.Canvas.measureText(text).width;itemWidth+=4+this.HeaderMergin.Left+this.HeaderMergin.Right;if(item.Width<itemWidth)item.Width=itemWidth;}this.HeaderHeight=this.GetFontHeight(this.HeaderFont,"擎")+this.HeaderMergin.Top+this.HeaderMergin.Bottom;if(!this.IsShowHeader)this.HeaderHeight=0;if(this.FixedRowCount<=0)this.FixedRowHeight=0;this.RowCount=parseInt((this.RectClient.Bottom-this.RectClient.Top-this.HeaderHeight-this.FixedRowHeight*this.FixedRowCount)/this.RowHeight);var subWidth=0;var reportWidth=this.RectClient.Right-this.RectClient.Left;for(var i=0;i<this.Column.length;++i){var item=this.Column[i];subWidth+=item.Width;}this.IsShowAllColumn=subWidth<reportWidth;};this.DrawHeader=function(){if(!this.IsShowHeader)return;var left=this.RectClient.Left;var top=this.RectClient.Top;var y=top+this.HeaderMergin.Top+(this.HeaderHeight-this.HeaderMergin.Top-this.HeaderMergin.Bottom)/2;this.Canvas.font=this.HeaderFont;var textLeft=left;//固定列
|
|
12570
|
-
for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];var itemWidth=item.Width;var textWidth=itemWidth-this.HeaderMergin.Left-this.HeaderMergin.Right;var x=textLeft+this.HeaderMergin.Left;if(item.HeaderBGColor){var rtBG={Left:textLeft,Top:top,Width:itemWidth,Height:this.HeaderHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;this.DrawItemBG({Rect:rtBG,BGColor:item.HeaderBGColor});}
|
|
12572
|
+
{if(this.Tab&&this.Tab.IsShow){this.Tab.CalculateSize();this.BottomToolbarHeight=this.Tab.Height;}else{this.BottomToolbarHeight=0;}if(this.VScrollbar&&this.VScrollbar.Enable)this.VScrollbar.CalculateSize();this.UpdateCacheData();var pixelRatio=GetDevicePixelRatio();this.HeaderFont=this.HeaderFontConfig.Size*pixelRatio+'px '+this.HeaderFontConfig.Name;this.ItemFont=this.ItemFontConfig.Size*pixelRatio+'px '+this.ItemFontConfig.Name;this.ItemFixedFont=this.ItemFixedFontConfg.Size*pixelRatio+'px '+this.ItemFixedFontConfg.Name;this.ItemSymbolFont=this.ItemSymbolFontConfig.Size*pixelRatio+'px '+this.ItemSymbolFontConfig.Name;this.ItemNameFont=this.ItemNameFontConfg.Size*pixelRatio+'px '+this.ItemNameFontConfg.Name;this.RowHeight=this.GetFontHeight(this.ItemFont,"擎")+this.ItemMergin.Top+this.ItemMergin.Bottom;this.FixedRowHeight=this.GetFontHeight(this.ItemFixedFont,"擎")+this.ItemMergin.Top+this.ItemMergin.Bottom;this.Canvas.font=this.ItemFont;var itemWidth=0;for(var i=0;i<this.Column.length;++i){var item=this.Column[i];if(item.Type==REPORT_COLUMN_ID.SYMBOL_NAME_ID){this.Canvas.font=this.ItemNameFont;var nameWidth=this.Canvas.measureText(item.MaxText).width;var nameHeight=this.GetFontHeight(this.ItemNameFont,"擎");this.ItemNameHeight=nameHeight;this.Canvas.font=this.ItemSymbolFont;var symbolWidth=this.Canvas.measureText(item.MaxText).width;var symboHeight=this.GetFontHeight(this.ItemSymbolFont,"擎");this.Canvas.font=this.ItemFont;itemWidth=Math.max(nameWidth,symbolWidth);item.Width=itemWidth+4+this.ItemMergin.Left+this.ItemMergin.Right;var rowHeight=nameHeight+symboHeight+this.ItemMergin.Top+this.ItemMergin.Bottom;if(rowHeight>this.RowHeight)this.RowHeight=rowHeight;if(rowHeight>this.FixedRowHeight)this.FixedRowHeight=rowHeight;}else{if(IFrameSplitOperator.IsNumber(item.FixedWidth))itemWidth=item.FixedWidth;else itemWidth=this.Canvas.measureText(item.MaxText).width;item.Width=itemWidth+4+this.ItemMergin.Left+this.ItemMergin.Right;}if(item.Icon&&item.Icon.Symbol){item.Width+=item.Icon.Size;if(item.Icon.Margin){var margin=item.Icon.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))item.Width+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))item.Width+=margin.Right;}}}this.Canvas.font=this.HeaderFont;for(var i=0;i<this.Column.length;++i){var item=this.Column[i];if(!item.Title||item.Title.length<=0)continue;var text=item.Title;if(item.Sort>0)text+="↓";itemWidth=this.Canvas.measureText(text).width;itemWidth+=4+this.HeaderMergin.Left+this.HeaderMergin.Right;if(item.Width<itemWidth)item.Width=itemWidth;}this.HeaderHeight=this.GetFontHeight(this.HeaderFont,"擎")+this.HeaderMergin.Top+this.HeaderMergin.Bottom;if(!this.IsShowHeader)this.HeaderHeight=0;if(this.FixedRowCount<=0)this.FixedRowHeight=0;this.RowCount=parseInt((this.RectClient.Bottom-this.RectClient.Top-this.HeaderHeight-this.FixedRowHeight*this.FixedRowCount)/this.RowHeight);var subWidth=0;var reportWidth=this.RectClient.Right-this.RectClient.Left;for(var i=0;i<this.Column.length;++i){var item=this.Column[i];subWidth+=item.Width;}this.IsShowAllColumn=subWidth<reportWidth;};this.DrawHeader=function(){if(!this.IsShowHeader)return;var left=this.RectClient.Left;var top=this.RectClient.Top;var y=top+this.HeaderMergin.Top+(this.HeaderHeight-this.HeaderMergin.Top-this.HeaderMergin.Bottom)/2;this.Canvas.font=this.HeaderFont;var textLeft=left;//固定列
|
|
12573
|
+
for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];var itemWidth=item.Width;var textWidth=itemWidth-this.HeaderMergin.Left-this.HeaderMergin.Right;var x=textLeft+this.HeaderMergin.Left;if(item.HeaderBGColor){var rtBG={Left:textLeft,Top:top,Width:itemWidth,Height:this.HeaderHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;this.DrawItemBG({Rect:rtBG,BGColor:item.HeaderBGColor});}var iconWidth=0;if(item.Icon&&item.Icon.Symbol)//图标
|
|
12574
|
+
{var iconWidth=item.Icon.Size;if(item.Icon.Margin){var margin=item.Icon.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))iconWidth+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))iconWidth+=margin.Right;}}textWidth-=iconWidth;if(item.HeaderColor)this.Canvas.fillStyle=item.HeaderColor;else this.Canvas.fillStyle=this.HeaderColor;var textSize={};if(this.SortInfo&&this.SortInfo.Field==i&&this.SortInfo.Sort>0){this.DrawSortHeader(item.Title,item.TextAlign,x,y,textWidth,this.SortInfo.Sort,textSize);}else{this.DrawText(item.Title,item.TextAlign,x,y,textWidth,textSize);}if(iconWidth>0){this.DrawHeaderIcon(item.Icon,textSize.Right,y,i,item);this.Canvas.font=this.HeaderFont;}this.Canvas.fillStyle=this.HeaderColor;textLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];var itemWidth=item.Width;var textWidth=itemWidth-this.HeaderMergin.Left-this.HeaderMergin.Right;var x=textLeft+this.HeaderMergin.Left;if(item.HeaderBGColor){var rtBG={Left:textLeft,Top:top,Width:itemWidth,Height:this.HeaderHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;this.DrawItemBG({Rect:rtBG,BGColor:item.HeaderBGColor});}var iconWidth=0;if(item.Icon&&item.Icon.Symbol)//图标
|
|
12575
|
+
{var iconWidth=item.Icon.Size;if(item.Icon.Margin){var margin=item.Icon.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))iconWidth+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))iconWidth+=margin.Right;}}textWidth-=iconWidth;if(item.HeaderColor)this.Canvas.fillStyle=item.HeaderColor;else this.Canvas.fillStyle=this.HeaderColor;var textSize={};if(this.SortInfo&&this.SortInfo.Field==i&&this.SortInfo.Sort>0){this.DrawSortHeader(item.Title,item.TextAlign,x,y,textWidth,this.SortInfo.Sort,textSize);}else{this.DrawText(item.Title,item.TextAlign,x,y,textWidth,textSize);}if(iconWidth>0){this.DrawHeaderIcon(item.Icon,textSize.Right,y,i,item);this.Canvas.font=this.HeaderFont;}textLeft+=item.Width;}};this.DrawText=function(text,textAlign,x,y,cellWidth,textSize){var textWidth=this.Canvas.measureText(text).width;if(textAlign=='center'){x=x+(cellWidth-textWidth)/2;}else if(textAlign=='right'){x=x+cellWidth-textWidth;}this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(text,x,y);if(textSize){textSize.Right=x+textWidth;textSize.Width=textWidth;}};this.DrawHeaderIcon=function(icon,x,y,index,column){var iconFont=icon.Size+'px '+icon.Family;this.Canvas.font=iconFont;this.Canvas.textAlign="left";if(icon.Color)this.Canvas.fillStyle=icon.Color;var xIcon=x;var yIcon=y;if(icon.Margin&&IFrameSplitOperator.IsNumber(icon.Margin.Left))xIcon+=icon.Margin.Left;if(icon.Margin&&IFrameSplitOperator.IsNumber(icon.Margin.Bottom))yIcon-=icon.Margin.Bottom;this.Canvas.fillText(icon.Symbol,xIcon,yIcon);if(icon.Tooltip){var rtIcon={Left:xIcon,Top:yIcon-icon.Size/2,Width:icon.Size,Height:icon.Size};rtIcon.Right=rtIcon.Left+rtIcon.Width;rtIcon.Bottom=rtIcon.Top+rtIcon.Height;var tooltipData={Rect:rtIcon,Type:2,Column:column,Index:index,Data:icon.Tooltip.Data};this.TooltipRect.push(tooltipData);}};this.DrawSortHeader=function(text,textAlign,x,y,width,sortType,textSize){var sortText=sortType==1?"↓":"↑";var sortTextWidth=this.Canvas.measureText(sortText).width;var textWidth=this.Canvas.measureText(text).width+2;this.Canvas.textBaseline="middle";this.Canvas.textAlign="left";if(textAlign=='center'){x=x+width/2-(sortTextWidth+textWidth)/2;}else if(textAlign=='right'){x=x+width-sortTextWidth-textWidth;}this.Canvas.fillText(text,x,y);this.Canvas.fillStyle=this.SortColor;this.Canvas.fillText(sortText,x+textWidth,y);this.Canvas.fillStyle=this.HeaderColor;if(textSize){textSize.Right=x+textWidth+sortTextWidth;textSize.Width=textWidth+sortTextWidth;}};this.DrawBorder=function(){if(!this.IsDrawBorder)return;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=this.RectClient.Bottom;this.Canvas.strokeStyle=this.BorderColor;this.Canvas.beginPath();this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));var rowTop=top+this.HeaderHeight+this.RowHeight;var rotBottom=rowTop;for(var i=0;i<this.FixedRowCount;++i){var drawTop=ToFixedPoint(rowTop);this.Canvas.moveTo(left,drawTop);this.Canvas.lineTo(right,drawTop);rotBottom=rowTop;rowTop+=this.FixedRowHeight;}var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;var rotBottom=rowTop;//横线
|
|
12571
12576
|
for(var i=0;i<this.RowCount;++i){var drawTop=ToFixedPoint(rowTop);this.Canvas.moveTo(left,drawTop);this.Canvas.lineTo(right,drawTop);rotBottom=rowTop;rowTop+=this.RowHeight;}//竖线
|
|
12572
12577
|
var columnLeft=left;for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];var drawLeft=ToFixedPoint(columnLeft+item.Width);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,rotBottom);columnLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];var drawLeft=ToFixedPoint(columnLeft+item.Width);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,rotBottom);columnLeft+=item.Width;}this.Canvas.stroke();};this.DrawBody=function(){if(!this.Data)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.Canvas.font=this.ItemFont;var top=this.RectClient.Top+this.HeaderHeight;var left=this.RectClient.Left;var rowWidth=this.RectClient.Right-this.RectClient.Left;//固定行
|
|
12573
12578
|
var textTop=top;this.Canvas.font=this.ItemFixedFont;for(var i=0;i<this.FixedRowCount;++i){if(this.SelectedFixedRow==i){this.Canvas.fillStyle=this.SelectedColor;;this.Canvas.fillRect(left,textTop,rowWidth,this.FixedRowHeight);}if(this.FixedRowData.Type==1)this.DrawFixedSymbolRow(textTop,i);else this.DrawFixedRow(textTop,i);textTop+=this.FixedRowHeight;}textTop=top+this.FixedRowHeight*this.FixedRowCount;this.Canvas.font=this.ItemFont;for(var i=this.Data.YOffset,j=0;i<this.Data.Data.length&&j<this.RowCount;++i,++j){var symbol=this.Data.Data[i];var bFillRow=false;if(this.SelectedModel==0){if(j==this.SelectedRow)bFillRow=true;//选中行
|
|
@@ -12673,7 +12678,7 @@ this.Name;//名称
|
|
|
12673
12678
|
this.ClassName='ChartCellTooltip';//类名
|
|
12674
12679
|
this.BGColor="rgba(255,255,225, 0.9)";this.BorderColor="rgb(0,0,0)";this.Margin={Left:5,Right:5,Top:4,Bottom:5};this.Font=13*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1';this.TextColor="rgb(0,0,0)";this.YOffset=20;this.XOffset=5;this.Point;//{ X, Y}
|
|
12675
12680
|
this.Data;//{ AryText:[ { Text, Color, Title:, TitleColor, Space, Margin:{ Left, Top, Right, Bottom }} ]}
|
|
12676
|
-
this.Draw=function(){if(!this.Canvas)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.AryText))return;if(!this.Point)return;var size={Width:0,Height:0,Text:[]};this.CalculateTextSize(this.Data.AryText,size);if(!IFrameSplitOperator.IsNonEmptyArray(size.Text))return;this.DrawTooltip(this.Data.AryText,size);};this.CalculateTextSize=function(aryText,size){var width=0,height=0;for(var i=0;i<aryText.length;++i){var item=aryText[i];var titleHeight=0,titleWidth=0;if(!item.Title&&!item.Text)continue;if(item.Title){if(item.TitleFont)this.Canvas.font=item.TitleFont;else this.Canvas.font=this.Font;titleWidth=this.Canvas.measureText(item.Title).width;titleHeight=this.Canvas.measureText("擎").width;}var textWidth=0,textHeight=0;if(item.Text){if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=this.Font;textWidth=this.Canvas.measureText(item.Text).width;textHeight=this.Canvas.measureText("擎").width;}var itemWidth=titleWidth+textWidth;var itemHeight=Math.max(textHeight,titleHeight);if(IFrameSplitOperator.IsNumber(item.Space))itemWidth+=item.Space;if(item.Margin){var margin=item.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))itemWidth+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))itemWidth+=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))itemHeight+=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))itemHeight+=margin.Bottom;}if(width<itemWidth)width=itemWidth;height+=itemHeight;size.Text[i]={Width:itemWidth,Height:itemHeight,TitleWidth:titleWidth,TextWidth:textWidth};}if(this.Margin){var margin=this.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))width+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))width+=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))height+=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))height+=margin.Bottom;}size.Width=width;size.Height=height;};this.DrawTooltip=function(aryText,size){var rtBG={Left:this.Point.X+this.XOffset,Top:this.Point.Y+this.YOffset,Width:size.Width,Height:size.Height};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;var border=this.ChartBorder.GetBorder();if(rtBG.Bottom>border.ChartHeight){rtBG.Bottom=this.Point.Y;rtBG.Top=rtBG.Bottom-rtBG.Height;}if(rtBG.Right>border.ChartWidth){rtBG.Right=this.Point.X;rtBG.Left=rtBG.Right-rtBG.Width;}if(this.BGColor){this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(ToFixedPoint(rtBG.Left),ToFixedPoint(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));}if(this.BorderColor){this.Canvas.strokeStyle=this.BorderColor;this.Canvas.strokeRect(ToFixedPoint(rtBG.Left),ToFixedPoint(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));}var left=rtBG.Left;var top=rtBG.Top;if(this.Margin&&IFrameSplitOperator.IsNumber(this.Margin.Left))left+=this.Margin.Left;if(this.Margin&&IFrameSplitOperator.IsNumber(this.Margin.Top))top+=this.Margin.Top;var xText,yText=top;for(var i=0;i<aryText.length;++i){var item=aryText[i];if(!item.Title&&!item.Text)continue;var itemSize=size.Text[i];xText=left;yText+=itemSize.Height;if(item.Margin&&IFrameSplitOperator.IsNumber(item.Margin.Left))xText+=item.Margin.Left;if(item.Margin&&IFrameSplitOperator.IsNumber(item.Margin.Bottom))yText-=item.Margin.Bottom;if(item.Title){if(item.TitleColor)this.Canvas.fillStyle=item.TitleColor;else this.Canvas.fillStyle=this.TextColor;this.Canvas.fillText(item.Title,xText,yText,itemSize.TitleWidth);xText+=itemSize.
|
|
12681
|
+
this.Draw=function(){if(!this.Canvas)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.AryText))return;if(!this.Point)return;var size={Width:0,Height:0,Text:[]};this.CalculateTextSize(this.Data.AryText,size);if(!IFrameSplitOperator.IsNonEmptyArray(size.Text))return;this.DrawTooltip(this.Data.AryText,size);};this.CalculateTextSize=function(aryText,size){var width=0,height=0;for(var i=0;i<aryText.length;++i){var item=aryText[i];var titleHeight=0,titleWidth=0;if(!item.Title&&!item.Text)continue;if(item.Title){if(item.TitleFont)this.Canvas.font=item.TitleFont;else this.Canvas.font=this.Font;titleWidth=this.Canvas.measureText(item.Title).width;titleHeight=this.Canvas.measureText("擎").width;}var textWidth=0,textHeight=0;if(item.Text){if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=this.Font;textWidth=this.Canvas.measureText(item.Text).width;textHeight=this.Canvas.measureText("擎").width;}var itemWidth=titleWidth+textWidth;var itemHeight=Math.max(textHeight,titleHeight);if(IFrameSplitOperator.IsNumber(item.Space))itemWidth+=item.Space;if(item.Margin){var margin=item.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))itemWidth+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))itemWidth+=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))itemHeight+=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))itemHeight+=margin.Bottom;}if(width<itemWidth)width=itemWidth;height+=itemHeight;size.Text[i]={Width:itemWidth,Height:itemHeight,TitleWidth:titleWidth,TextWidth:textWidth};}if(this.Margin){var margin=this.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))width+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))width+=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))height+=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))height+=margin.Bottom;}size.Width=width;size.Height=height;};this.DrawTooltip=function(aryText,size){var rtBG={Left:this.Point.X+this.XOffset,Top:this.Point.Y+this.YOffset,Width:size.Width,Height:size.Height};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;var border=this.ChartBorder.GetBorder();if(rtBG.Bottom>border.ChartHeight){rtBG.Bottom=this.Point.Y;rtBG.Top=rtBG.Bottom-rtBG.Height;}if(rtBG.Right>border.ChartWidth){rtBG.Right=this.Point.X;rtBG.Left=rtBG.Right-rtBG.Width;}if(this.BGColor){this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(ToFixedPoint(rtBG.Left),ToFixedPoint(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));}if(this.BorderColor){this.Canvas.strokeStyle=this.BorderColor;this.Canvas.strokeRect(ToFixedPoint(rtBG.Left),ToFixedPoint(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));}var left=rtBG.Left;var top=rtBG.Top;if(this.Margin&&IFrameSplitOperator.IsNumber(this.Margin.Left))left+=this.Margin.Left;if(this.Margin&&IFrameSplitOperator.IsNumber(this.Margin.Top))top+=this.Margin.Top;var xText,yText=top;for(var i=0;i<aryText.length;++i){var item=aryText[i];if(!item.Title&&!item.Text)continue;var itemSize=size.Text[i];xText=left;yText+=itemSize.Height;if(item.Margin&&IFrameSplitOperator.IsNumber(item.Margin.Left))xText+=item.Margin.Left;if(item.Margin&&IFrameSplitOperator.IsNumber(item.Margin.Bottom))yText-=item.Margin.Bottom;if(item.Title){if(item.TitleColor)this.Canvas.fillStyle=item.TitleColor;else this.Canvas.fillStyle=this.TextColor;this.Canvas.fillText(item.Title,xText,yText,itemSize.TitleWidth);xText+=itemSize.TitleWidth;if(IFrameSplitOperator.IsNumber(item.Space))xText+=item.Space;}if(item.Text){if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.TextColor;this.Canvas.fillText(item.Text,xText,yText,itemSize.TextWidth);}}};}/*
|
|
12677
12682
|
Copyright (c) 2018 jones
|
|
12678
12683
|
|
|
12679
12684
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
@@ -12737,16 +12742,16 @@ this.DragXScroll=null;//{Start:{x,y}, End:{x, y}}
|
|
|
12737
12742
|
this.IsDestroy=false;//是否已经销毁了
|
|
12738
12743
|
this.ChartDestory=function()//销毁
|
|
12739
12744
|
{this.IsDestroy=true;this.StopAutoUpdate();};//创建
|
|
12740
|
-
this.Create=function(option){var
|
|
12745
|
+
this.Create=function(option){var _this61=this;this.UIElement.JSChartContainer=this;//创建等待提示
|
|
12741
12746
|
this.ChartSplashPaint=new ChartSplashPaint();this.ChartSplashPaint.Canvas=this.Canvas;this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);this.ChartSplashPaint.IsEnableSplash=true;//创建框架
|
|
12742
12747
|
this.Frame=new JSTReportFrame();this.Frame.ChartBorder=new ChartBorder();this.Frame.ChartBorder.UIElement=this.UIElement;this.Frame.ChartBorder.Top=30;this.Frame.ChartBorder.Left=5;this.Frame.ChartBorder.Bottom=20;this.Frame.Canvas=this.Canvas;this.ChartSplashPaint.Frame=this.Frame;//创建表格
|
|
12743
|
-
var chart=new ChartTReport();chart.Frame=this.Frame;chart.ChartBorder=this.Frame.ChartBorder;chart.Canvas=this.Canvas;chart.UIElement=this.UIElement;chart.GetEventCallback=function(id){return
|
|
12748
|
+
var chart=new ChartTReport();chart.Frame=this.Frame;chart.ChartBorder=this.Frame.ChartBorder;chart.Canvas=this.Canvas;chart.UIElement=this.UIElement;chart.GetEventCallback=function(id){return _this61.GetEventCallback(id);};chart.GetExePriceDataCallback=function(exePrice){return _this61.GetExePriceData(exePrice);};chart.GetFlashBGDataCallback=function(symbol,time){return _this61.GetFlashBGData(symbol,time);};chart.Data=this.Data;chart.BorderData=this.BorderData;chart.GlobalOption=this.GlobalOption;chart.SortInfo=this.SortInfo;this.ChartPaint[0]=chart;if(option){if(IFrameSplitOperator.IsBool(option.IsShowHeader))chart.IsShowHeader=option.IsShowHeader;//是否显示表头
|
|
12744
12749
|
if(IFrameSplitOperator.IsNumber(option.FixedColumn))chart.FixedColumn=option.FixedColumn;//固定列
|
|
12745
12750
|
if(IFrameSplitOperator.IsNumber(option.BorderLine))this.Frame.BorderLine=option.BorderLine;//边框
|
|
12746
12751
|
if(IFrameSplitOperator.IsBool(option.ItemBorder))chart.IsDrawBorder=option.ItemBorder;//单元格边框
|
|
12747
|
-
if(IFrameSplitOperator.IsNumber(option.SelectedModel))chart.SelectedModel=option.SelectedModel;}var bRegisterKeydown=true;var bRegisterWheel=true;if(option){if(option.KeyDown===false){bRegisterKeydown=false;JSConsole.Chart.Log('[JSTReportChartContainer::Create] not register keydown event.');}if(option.Wheel===false){bRegisterWheel=false;JSConsole.Chart.Log('[JSTReportChartContainer::Create] not register wheel event.');}}if(bRegisterKeydown)this.UIElement.addEventListener("keydown",function(e){
|
|
12748
|
-
if(bRegisterWheel)this.UIElement.addEventListener("wheel",function(e){
|
|
12749
|
-
this.UIElement.ondblclick=function(e){
|
|
12752
|
+
if(IFrameSplitOperator.IsNumber(option.SelectedModel))chart.SelectedModel=option.SelectedModel;}var bRegisterKeydown=true;var bRegisterWheel=true;if(option){if(option.KeyDown===false){bRegisterKeydown=false;JSConsole.Chart.Log('[JSTReportChartContainer::Create] not register keydown event.');}if(option.Wheel===false){bRegisterWheel=false;JSConsole.Chart.Log('[JSTReportChartContainer::Create] not register wheel event.');}}if(bRegisterKeydown)this.UIElement.addEventListener("keydown",function(e){_this61.OnKeyDown(e);},true);//键盘消息
|
|
12753
|
+
if(bRegisterWheel)this.UIElement.addEventListener("wheel",function(e){_this61.OnWheel(e);},true);//上下滚动消息
|
|
12754
|
+
this.UIElement.ondblclick=function(e){_this61.UIOnDblClick(e);};this.UIElement.onmousedown=function(e){_this61.UIOnMouseDown(e);};/*
|
|
12750
12755
|
this.UIElement.onmouseup=(e)=>{ this.UIOnMounseUp(e); }
|
|
12751
12756
|
this.UIElement.oncontextmenu=(e)=> { this.UIOnContextMenu(e); }
|
|
12752
12757
|
this.UIElement.onmousemove=(e)=>{ this.UIOnMouseMove(e);}
|
|
@@ -12761,7 +12766,7 @@ this.UIElement.ondblclick=function(e){_this60.UIOnDblClick(e);};this.UIElement.o
|
|
|
12761
12766
|
*/};this.Draw=function(){if(this.UIElement.width<=0||this.UIElement.height<=0)return;this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
12762
12767
|
this.Canvas.lineWidth=pixelTatio;//手机端需要根据分辨率比调整线段宽度
|
|
12763
12768
|
if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash){this.Frame.Draw({IsEnableSplash:this.ChartSplashPaint.IsEnableSplash});this.ChartSplashPaint.Draw();return;}this.Frame.Draw();this.Frame.DrawLogo();//框架内图形
|
|
12764
|
-
for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.IsDrawFirst)item.Draw();}for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.IsDrawFirst)item.Draw();}if(this.GlobalOption.FlashBGCount>0){this.DelayDraw(500);}};this.DelayDraw=function(frequency){var
|
|
12769
|
+
for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.IsDrawFirst)item.Draw();}for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.IsDrawFirst)item.Draw();}if(this.GlobalOption.FlashBGCount>0){this.DelayDraw(500);}};this.DelayDraw=function(frequency){var _this62=this;if(typeof this.FlashBGTimer=='number'){clearTimeout(this.FlashBGTimer);this.FlashBGTimer=null;}this.FlashBGTimer=setTimeout(function(){_this62.Draw();},frequency);};this.ClearData=function(){this.SourceData.Data=[];this.Data.Data=[];this.Data.Price=null;this.MapStockData=null;this.MapExePriceData=null;this.BorderData.MapData=null;};this.StopAutoUpdate=function(){this.CancelAutoUpdate();this.AutoUpdateEvent(false,'JSTReportChartContainer::StopAutoUpdate');if(!this.IsAutoUpdate)return;this.IsAutoUpdate=false;};//设置事件回调
|
|
12765
12770
|
//{event:事件id, callback:回调函数}
|
|
12766
12771
|
this.AddEventCallback=function(object){if(!object||!object.event||!object.callback)return;var data={Callback:object.callback,Source:object};this.mapEvent.set(object.event,data);};this.RemoveEventCallback=function(eventid){if(!this.mapEvent.has(eventid))return;this.mapEvent.delete(eventid);};this.GetEventCallback=function(id)//获取事件回调
|
|
12767
12772
|
{if(!this.mapEvent.has(id))return null;var item=this.mapEvent.get(id);return item;};this.OnSize=function(){if(!this.Frame)return;this.SetSizeChange(true);this.Draw();this.DelayUpdateStockData();};this.SetSizeChange=function(bChanged){for(var i=0;i<this.ChartPaint.length;++i){var chart=this.ChartPaint[i];if(chart)chart.SizeChange=bChanged;}};this.ChangeSymbol=function(symbol,option){this.CancelAutoUpdate();this.ClearData();this.Symbol=symbol;this.Name=symbol;if(option){if(option.Name)this.Name=option.Name;}this.RequestStockListData();};this.CancelAutoUpdate=function()//关闭停止更新
|
|
@@ -12771,10 +12776,10 @@ Explain:'T型报价列表数据',Self:this,PreventDefault:false};this.NetworkFil
|
|
|
12771
12776
|
}throw{Name:'JSTReportChartContainer::RequestStockListData',Error:'(T型报价列表数据)不提供内置测试数据'};};this.RecvStockListData=function(data){if(IFrameSplitOperator.IsNonEmptyArray(data.data)){this.MapExePriceData=new _map2.default();this.MapStockData=new _map2.default();//0=行权价格 1=左边期权代码 2=右侧期权代码 3=左侧期权名称 4=右侧期权名称
|
|
12772
12777
|
for(var i=0;i<data.data.length;++i){var item=data.data[i];var exePrice=item[0];var leftData=new HQTReportItem();leftData.Symbol=leftData.Name=item[1];if(item[3])leftData.Name=item[3];var rightData=new HQTReportItem();rightData.Symbol=rightData.Name=item[2];if(item[4])rightData.Name=item[4];this.MapStockData.set(leftData.Symbol,leftData);this.MapStockData.set(rightData.Symbol,rightData);var dataItem={ExePrice:exePrice,LeftData:leftData,RightData:rightData};this.MapExePriceData.set(dataItem.ExePrice,dataItem);this.SourceData.Data.push(exePrice);this.Data.Data.push(exePrice);}}if(IFrameSplitOperator.IsNumber(data.price)){this.Data.Price=data.price;}this.Draw();this.UpdateStockData();};this.GetExePriceData=function(exePrice){if(!this.MapExePriceData)return null;if(!this.MapExePriceData.has(exePrice))return null;return this.MapExePriceData.get(exePrice);};this.UpdateStockData=function(){if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;if(this.MapStockData.size<=0)return;var arySymbol=[];var _iteratorNormalCompletion23=true;var _didIteratorError23=false;var _iteratorError23=undefined;try{for(var _iterator23=(0,_getIterator3.default)(this.MapStockData),_step23;!(_iteratorNormalCompletion23=(_step23=_iterator23.next()).done);_iteratorNormalCompletion23=true){var mapItem=_step23.value;arySymbol.push(mapItem[0]);}}catch(err){_didIteratorError23=true;_iteratorError23=err;}finally{try{if(!_iteratorNormalCompletion23&&_iterator23.return){_iterator23.return();}}finally{if(_didIteratorError23){throw _iteratorError23;}}}if(!IFrameSplitOperator.IsNonEmptyArray(arySymbol))return;this.RequestStockData(arySymbol);};//下载期权数据
|
|
12773
12778
|
this.RequestStockData=function(arySymbol){var self=this;if(this.NetworkFilter){var obj={Name:'JSTReportChartContainer::RequestStockData',//类名::函数名
|
|
12774
|
-
Explain:'T型报价列表期权数据',Request:{Data:{stocks:arySymbol,symbol:this.Symbol}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){self.RecvStockData(data);self.AutoUpdate();});if(obj.PreventDefault==true)return;}throw{Name:'JSTReportChartContainer::RequestStockData',Error:'(T型报价列表期权数据)不提供内置测试数据'};};this.RecvStockData=function(data){var
|
|
12779
|
+
Explain:'T型报价列表期权数据',Request:{Data:{stocks:arySymbol,symbol:this.Symbol}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){self.RecvStockData(data);self.AutoUpdate();});if(obj.PreventDefault==true)return;}throw{Name:'JSTReportChartContainer::RequestStockData',Error:'(T型报价列表期权数据)不提供内置测试数据'};};this.RecvStockData=function(data){var _this63=this;var setUpdateSymbol=new _set2.default();//更新的股票列表
|
|
12775
12780
|
if(IFrameSplitOperator.IsNonEmptyArray(data.data)){for(var i=0;i<data.data.length;++i){var item=data.data[i];var symbol=item[0];//0=证券代码;
|
|
12776
12781
|
if(!symbol)continue;var stock=null;if(this.MapStockData.has(symbol)){stock=this.MapStockData.get(symbol);}else{stock=new HQTReportItem();stock.Symbol=symbol;this.MapStockData.set(symbol,stock);}this.ReadStockJsonData(stock,item);if(!setUpdateSymbol.has(symbol))setUpdateSymbol.add(symbol);}}if(IFrameSplitOperator.IsNumber(data.price))this.Data.Price=data.price;//实时数据排序
|
|
12777
|
-
var chart=this.ChartPaint[0];if(chart&&(this.SortInfo.Sort==1||this.SortInfo.Sort==2)&&IFrameSplitOperator.IsNumber(this.SortInfo.Field)&&this.SortInfo.Field>=0){var column=chart.Column[this.SortInfo.Field];var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_TREPORT_LOCAL_SORT);if(event&&event.Callback){var sendData={Column:column,SortInfo:this.SortInfo,SymbolList:this.Data.Data,Result:null};event.Callback(event,sendData,this);if(Array.isArray(sendData.Result))this.Data.Data=sendData.Result;}else{this.Data.Data.sort(function(left,right){return
|
|
12782
|
+
var chart=this.ChartPaint[0];if(chart&&(this.SortInfo.Sort==1||this.SortInfo.Sort==2)&&IFrameSplitOperator.IsNumber(this.SortInfo.Field)&&this.SortInfo.Field>=0){var column=chart.Column[this.SortInfo.Field];var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_TREPORT_LOCAL_SORT);if(event&&event.Callback){var sendData={Column:column,SortInfo:this.SortInfo,SymbolList:this.Data.Data,Result:null};event.Callback(event,sendData,this);if(Array.isArray(sendData.Result))this.Data.Data=sendData.Result;}else{this.Data.Data.sort(function(left,right){return _this63.LocalSort(left,right,column,_this63.SortInfo.Sort,_this63.SortInfo.CellType);});}}this.CalculateData();this.Draw();};//计算统计数据
|
|
12778
12783
|
this.CalculateData=function(){if(!this.MapExePriceData||this.MapExePriceData.size<=0)return;var leftMaxPosition={Max:null,ExePrice:null,CellType:1};var rightMaxPosition={Max:null,ExePrice:null,CellType:2};this.BorderData.MapData=new _map2.default();var _iteratorNormalCompletion24=true;var _didIteratorError24=false;var _iteratorError24=undefined;try{for(var _iterator24=(0,_getIterator3.default)(this.MapExePriceData),_step24;!(_iteratorNormalCompletion24=(_step24=_iterator24.next()).done);_iteratorNormalCompletion24=true){var mapItem=_step24.value;var item=mapItem[1];var leftData=item.LeftData;var rightData=item.RightData;if(leftData&&IFrameSplitOperator.IsNumber(leftData.Position)){if(leftMaxPosition.Max==null||leftMaxPosition.Max<leftData.Position){leftMaxPosition.Max=leftData.Position;leftMaxPosition.ExePrice=mapItem[0];}}if(rightData&&IFrameSplitOperator.IsNumber(rightData.Position)){if(leftMaxPosition.Max==null||leftMaxPosition.Max<rightData.Position){rightMaxPosition.Max=rightData.Position;rightMaxPosition.ExePrice=mapItem[0];}}}}catch(err){_didIteratorError24=true;_iteratorError24=err;}finally{try{if(!_iteratorNormalCompletion24&&_iterator24.return){_iterator24.return();}}finally{if(_didIteratorError24){throw _iteratorError24;}}}var aryData=[null,null,null];if(leftMaxPosition.ExePrice)aryData[1]=leftMaxPosition;if(rightMaxPosition.ExePrice)aryData[2]=rightMaxPosition;this.BorderData.MapData.set(TREPORT_COLUMN_ID.POSITION_ID,{Data:aryData});};//读取单条股票json数据
|
|
12779
12784
|
this.ReadStockJsonData=function(stock,item){//0=证券代码 1=股票名称 2=昨收 3=开 4=高 5=低 6=收 7=成交量 8=成交金额, 9=买价 10=买量 11=卖价 12=卖量 13=均价 14=持仓 16=涨停价 17=跌停价
|
|
12780
12785
|
//21=涨幅% 22=涨跌 24=振幅%
|
|
@@ -12799,14 +12804,14 @@ if(item[33])stock.KLine=item[33];//33=K线
|
|
|
12799
12804
|
var frequency=this.AutoUpdateFrequency;if(marketStatus==1)//盘前
|
|
12800
12805
|
{this.AutoUpdateTimer=setTimeout(function(){self.AutoUpdate();},frequency);}else if(marketStatus==2)//盘中
|
|
12801
12806
|
{this.AutoUpdateTimer=setTimeout(function(){self.UpdateStockData();},frequency);}};//delay=是否延迟
|
|
12802
|
-
this.DelayUpdateStockData=function(){var
|
|
12807
|
+
this.DelayUpdateStockData=function(){var _this64=this;if(this.DelayUpdateTimer!=null){clearTimeout(this.DelayUpdateTimer);this.DelayUpdateTimer=null;}var frequency=this.DelayUpdateFrequency;this.DelayUpdateTimer=setTimeout(function(){_this64.UpdateStockData();},frequency);};this.UIOnDblClick=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.GetTReportChart();if(chart)chart.OnDblClick(x,y,e);};this.UIOnMouseDown=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(!chart)return;var clickData=chart.OnMouseDown(x,y,e);if(!clickData)return;if(clickData.Type==2&&(e.button==0||e.button==2))//点击行
|
|
12803
12808
|
{if(clickData.Redraw==true)this.Draw();}else if(clickData.Type==3&&e.button==0)//表头
|
|
12804
12809
|
{this.OnClickHeader(clickData,e);}//document.onmousemove=(e)=>{ this.DocOnMouseMove(e); }
|
|
12805
12810
|
//document.onmouseup=(e)=> { this.DocOnMouseUp(e); }
|
|
12806
12811
|
};//点表头
|
|
12807
12812
|
this.OnClickHeader=function(clickData,e){var header=clickData.Header;if(header.Column&&header.Column.Sort==1){var data={CellType:header.CellType,ColumnIndex:header.ColumnIndex};this.SortHeader(header.Column,data);}};//排序
|
|
12808
|
-
this.SortHeader=function(column,sortData){var
|
|
12809
|
-
{this.Data.Data=[];for(var i=0;i<this.SourceData.Data.length;++i){this.Data.Data.push(this.SourceData.Data[i]);}}else{var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_TREPORT_LOCAL_SORT);if(event&&event.Callback){var sendData={Column:column,SortInfo:sortInfo,SymbolList:this.Data.Data,Result:null};event.Callback(event,sendData,this);if(Array.isArray(sendData.Result))this.Data.Data=sendData.Result;}else{this.Data.Data.sort(function(left,right){return
|
|
12813
|
+
this.SortHeader=function(column,sortData){var _this65=this;var sortInfo={Field:this.SortInfo.Field,Sort:this.SortInfo.Sort,CellType:this.SortInfo.CellType};var arySortType=column.SortType;if(sortInfo.Field!=sortData.ColumnIndex||sortInfo.CellType!=sortData.CellType){sortInfo.Field=sortData.ColumnIndex;sortInfo.CellType=sortData.CellType;sortInfo.Sort=arySortType[0];}else{if(arySortType.length==1){sortInfo.Sort=arySortType[0];}else{for(var i=0;i<arySortType.length;++i){if(sortInfo.Sort==arySortType[i]){sortInfo.Sort=arySortType[(i+1)%arySortType.length];break;}}}}if(sortInfo.Sort==0)//还原
|
|
12814
|
+
{this.Data.Data=[];for(var i=0;i<this.SourceData.Data.length;++i){this.Data.Data.push(this.SourceData.Data[i]);}}else{var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_TREPORT_LOCAL_SORT);if(event&&event.Callback){var sendData={Column:column,SortInfo:sortInfo,SymbolList:this.Data.Data,Result:null};event.Callback(event,sendData,this);if(Array.isArray(sendData.Result))this.Data.Data=sendData.Result;}else{this.Data.Data.sort(function(left,right){return _this65.LocalSort(left,right,column,sortInfo.Sort,sortInfo.CellType);});}}this.Data.YOffset=0;this.SortInfo.Field=sortInfo.Field;this.SortInfo.Sort=sortInfo.Sort;this.SortInfo.CellType=sortInfo.CellType;this.Draw();this.DelayUpdateStockData();};//本地排序
|
|
12810
12815
|
this.LocalSort=function(left,right,column,sortType,cellType){switch(column.Type){case TREPORT_COLUMN_ID.SYMBOL_ID:case TREPORT_COLUMN_ID.NAME_ID:return this.LocalStringSort(left,right,column,sortType,cellType);case TREPORT_COLUMN_ID.PRICE_ID:case TREPORT_COLUMN_ID.VOL_ID:case TREPORT_COLUMN_ID.UPDOWN_ID:case TREPORT_COLUMN_ID.BUY_PRICE_ID:case TREPORT_COLUMN_ID.SELL_PRICE_ID:case TREPORT_COLUMN_ID.AMOUNT_ID:case TREPORT_COLUMN_ID.BUY_VOL_ID:case TREPORT_COLUMN_ID.SELL_VOL_ID:case TREPORT_COLUMN_ID.YCLOSE_ID:case TREPORT_COLUMN_ID.OPEN_ID:case TREPORT_COLUMN_ID.HIGH_ID:case TREPORT_COLUMN_ID.LOW_ID:case TREPORT_COLUMN_ID.AVERAGE_PRICE_ID:case TREPORT_COLUMN_ID.EXE_PRICE_ID://行权价格
|
|
12811
12816
|
case TREPORT_COLUMN_ID.POSITION_ID://持仓量
|
|
12812
12817
|
case TREPORT_COLUMN_ID.AMPLITUDE_ID:case TREPORT_COLUMN_ID.INCREASE_ID:return this.LocalNumberSort(left,right,column,sortType,cellType);default:return 0;}};this.LocalNumberSort=function(left,right,column,sortType,cellType){var leftStock=this.GetExePriceData(left);var rightStock=this.GetExePriceData(right);var leftValue=-99999999999999,rightValue=-99999999999999;if(sortType==2)leftValue=rightValue=99999999999999;var filedName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(cellType==0)//行权价格
|
|
@@ -12986,11 +12991,11 @@ this.MapSymbol.clear();this.Data.Data=[];this.Data.XOffset=0;this.Data.YOffset=0
|
|
|
12986
12991
|
}
|
|
12987
12992
|
this.ChartPaint[0].SelectedRow=0;
|
|
12988
12993
|
*/};//创建
|
|
12989
|
-
this.Create=function(option){var
|
|
12994
|
+
this.Create=function(option){var _this66=this;this.UIElement.JSChartContainer=this;//创建框架
|
|
12990
12995
|
this.Frame=new JSKeyboardFrame();this.Frame.ChartBorder=new ChartBorder();this.Frame.ChartBorder.UIElement=this.UIElement;this.Frame.ChartBorder.Top=30;this.Frame.ChartBorder.Left=5;this.Frame.ChartBorder.Bottom=20;this.Frame.Canvas=this.Canvas;//创建表格
|
|
12991
|
-
var chart=new ChartSymbolList();chart.Frame=this.Frame;chart.ChartBorder=this.Frame.ChartBorder;chart.Canvas=this.Canvas;chart.UIElement=this.UIElement;chart.GetEventCallback=function(id){return
|
|
12992
|
-
if(bRegisterWheel)this.UIElement.addEventListener("wheel",function(e){
|
|
12993
|
-
this.UIElement.ondblclick=function(e){
|
|
12996
|
+
var chart=new ChartSymbolList();chart.Frame=this.Frame;chart.ChartBorder=this.Frame.ChartBorder;chart.Canvas=this.Canvas;chart.UIElement=this.UIElement;chart.GetEventCallback=function(id){return _this66.GetEventCallback(id);};chart.GetStockDataCallback=function(symbol){return _this66.GetStockData(symbol);};chart.Data=this.Data;this.ChartPaint[0]=chart;if(option){}var bRegisterKeydown=true;var bRegisterWheel=true;if(option){if(option.KeyDown===false){bRegisterKeydown=false;JSConsole.Chart.Log('[JSKeyboardChartContainer::Create] not register keydown event.');}if(option.Wheel===false){bRegisterWheel=false;JSConsole.Chart.Log('[JSKeyboardChartContainer::Create] not register wheel event.');}}if(bRegisterKeydown)this.UIElement.addEventListener("keydown",function(e){_this66.OnKeyDown(e);},true);//键盘消息
|
|
12997
|
+
if(bRegisterWheel)this.UIElement.addEventListener("wheel",function(e){_this66.OnWheel(e);},true);//上下滚动消息
|
|
12998
|
+
this.UIElement.ondblclick=function(e){_this66.UIOnDblClick(e);};this.UIElement.onmousedown=function(e){_this66.UIOnMouseDown(e);};this.UIElement.oncontextmenu=function(e){_this66.UIOnContextMenu(e);};this.UIElement.onmousemove=function(e){_this66.UIOnMouseMove(e);};this.UIElement.onmouseout=function(e){_this66.UIOnMounseOut(e);};this.UIElement.onmouseleave=function(e){_this66.UIOnMouseleave(e);};};this.Draw=function(){if(this.UIElement.width<=0||this.UIElement.height<=0)return;this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
12994
12999
|
this.Canvas.lineWidth=pixelTatio;//手机端需要根据分辨率比调整线段宽度
|
|
12995
13000
|
this.Frame.Draw();this.Frame.DrawLogo();//框架内图形
|
|
12996
13001
|
for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.IsDrawFirst)item.Draw();}for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.IsDrawFirst)item.Draw();}};this.GetStockData=function(symbol){if(!this.MapSymbol.has(symbol))return null;return this.MapSymbol.get(symbol);};this.ResetStatus=function(){this.Data.XOffset=0;this.Data.YOffset=0;};this.ResetSelectStatus=function(){var chart=this.GetReportChart();if(chart){chart.SelectedRow=-1;chart.SelectedFixedRow=-1;}};//设置事件回调
|
|
@@ -13007,9 +13012,9 @@ var result=this.MoveSelectedRow(1);if(result){if(result.Redraw)this.Draw();}brea
|
|
|
13007
13012
|
if(this.MoveXOffset(-1))this.Draw();break;case 39://right
|
|
13008
13013
|
if(this.MoveXOffset(1))this.Draw();break;case 13://Enter
|
|
13009
13014
|
this.OnSelectedSymbol();break;}//不让滚动条滚动
|
|
13010
|
-
if(e.preventDefault)e.preventDefault();else e.returnValue=false;};this.OnSelectedSymbol=function(){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var chart=this.ChartPaint[0];if(!chart)return false;var data=chart.GetSelectedSymbol();var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_KEYBOARD_SELECTED);if(event&&event.Callback){event.Callback(event,{Data:data},this);}};this.UIOnDblClick=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(chart){if(chart.OnDblClick(x,y,e))this.OnSelectedSymbol();}};this.UIOnMouseDown=function(e){var
|
|
13015
|
+
if(e.preventDefault)e.preventDefault();else e.returnValue=false;};this.OnSelectedSymbol=function(){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var chart=this.ChartPaint[0];if(!chart)return false;var data=chart.GetSelectedSymbol();var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_KEYBOARD_SELECTED);if(event&&event.Callback){event.Callback(event,{Data:data},this);}};this.UIOnDblClick=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(chart){if(chart.OnDblClick(x,y,e))this.OnSelectedSymbol();}};this.UIOnMouseDown=function(e){var _this67=this;this.DragXScroll=null;this.DragMove={Click:{X:e.clientX,Y:e.clientY},Move:{X:e.clientX,Y:e.clientY},PreMove:{X:e.clientX,Y:e.clientY}};var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(chart){var clickData=chart.OnMouseDown(x,y,e);if(!clickData)return;//if (e.button!=0) return;
|
|
13011
13016
|
if(clickData.Type==2&&(e.button==0||e.button==2))//点击行
|
|
13012
|
-
{if(clickData.Redraw==true)this.Draw();}}document.onmousemove=function(e){
|
|
13017
|
+
{if(clickData.Redraw==true)this.Draw();}}document.onmousemove=function(e){_this67.DocOnMouseMove(e);};document.onmouseup=function(e){_this67.DocOnMouseUp(e);};};//去掉右键菜单
|
|
13013
13018
|
this.UIOnContextMenu=function(e){e.preventDefault();};this.UIOnMouseMove=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;};this.UIOnMounseOut=function(e){};this.UIOnMouseleave=function(e){};this.DocOnMouseMove=function(e){this.DragMove.PreMove.X=this.DragMove.Move.X;this.DragMove.PreMove.Y=this.DragMove.Move.Y;this.DragMove.Move.X=e.clientX;this.DragMove.Move.Y=e.clientX;//if (this.DragMove.Move.X!=this.DragMove.PreMove.X || this.DragMove.Move.Y!=this.DragMove.PreMove.Y)
|
|
13014
13019
|
// this.StopAutoDragScrollTimer();
|
|
13015
13020
|
if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash==true)return;var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;//JSConsole.Chart.Log(`[JSReportChartContainer::DocOnMouseMove] x=${x}, y=${y}`);
|
|
@@ -13122,12 +13127,12 @@ this.HQChart=null;this.ChartDestory=function()//销毁
|
|
|
13122
13127
|
//{event:事件id, callback:回调函数}
|
|
13123
13128
|
this.AddEventCallback=function(object){if(!object||!object.event||!object.callback)return;var data={Callback:object.callback,Source:object};this.mapEvent.set(object.event,data);};this.RemoveEventCallback=function(eventid){if(!this.mapEvent.has(eventid))return;this.mapEvent.delete(eventid);};this.GetEventCallback=function(id)//获取事件回调
|
|
13124
13129
|
{if(!this.mapEvent.has(id))return null;var item=this.mapEvent.get(id);return item;};//创建
|
|
13125
|
-
this.Create=function(option){var
|
|
13130
|
+
this.Create=function(option){var _this68=this;this.UIElement.JSChartContainer=this;//创建等待提示
|
|
13126
13131
|
this.ChartSplashPaint=new ChartSplashPaint();this.ChartSplashPaint.Canvas=this.Canvas;this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);this.ChartSplashPaint.IsEnableSplash=true;//创建框架
|
|
13127
13132
|
this.Frame=new JSScrollBarFrame();this.Frame.ChartBorder=new ChartBorder();this.Frame.ChartBorder.UIElement=this.UIElement;this.Frame.ChartBorder.Top=30;this.Frame.ChartBorder.Left=5;this.Frame.ChartBorder.Bottom=20;this.Frame.Canvas=this.Canvas;this.ChartSplashPaint.Frame=this.Frame;//背景
|
|
13128
|
-
var chart=new ScrollBarBGChart();chart.ChartFrame=this.Frame;chart.ChartBorder=this.Frame.ChartBorder;chart.Canvas=this.Canvas;chart.GetEventCallback=function(id){return
|
|
13129
|
-
var chart=new SliderChart();chart.ChartFrame=this.Frame;chart.ChartBorder=this.Frame.ChartBorder;chart.Canvas=this.Canvas;chart.OffsetData=this.XOffsetData;chart.GetEventCallback=function(id){return
|
|
13130
|
-
this.UIElement.onmousedown=function(e){
|
|
13133
|
+
var chart=new ScrollBarBGChart();chart.ChartFrame=this.Frame;chart.ChartBorder=this.Frame.ChartBorder;chart.Canvas=this.Canvas;chart.GetEventCallback=function(id){return _this68.GetEventCallback(id);};this.ChartPaint.push(chart);//创建滑块
|
|
13134
|
+
var chart=new SliderChart();chart.ChartFrame=this.Frame;chart.ChartBorder=this.Frame.ChartBorder;chart.Canvas=this.Canvas;chart.OffsetData=this.XOffsetData;chart.GetEventCallback=function(id){return _this68.GetEventCallback(id);};this.SliderChart=chart;this.ChartPaint.push(chart);//this.UIElement.ondblclick=(e)=>{ this.UIOnDblClick(e); }
|
|
13135
|
+
this.UIElement.onmousedown=function(e){_this68.UIOnMouseDown(e);};this.UIElement.oncontextmenu=function(e){_this68.UIOnContextMenu(e);};this.UIElement.onmousemove=function(e){_this68.UIOnMouseMove(e);};this.UIElement.onmouseout=function(e){_this68.UIOnMounseOut(e);};this.UIElement.onmouseleave=function(e){_this68.UIOnMouseleave(e);};//手机拖拽
|
|
13131
13136
|
//this.UIElement.ontouchstart=(e)=> { this.OnTouchStart(e); }
|
|
13132
13137
|
//this.UIElement.ontouchmove=(e)=> {this.OnTouchMove(e); }
|
|
13133
13138
|
//this.UIElement.ontouchend=(e)=> {this.OnTouchEnd(e); }
|
|
@@ -13135,14 +13140,14 @@ this.UIElement.onmousedown=function(e){_this67.UIOnMouseDown(e);};this.UIElement
|
|
|
13135
13140
|
this.Canvas.lineWidth=pixelTatio;//手机端需要根据分辨率比调整线段宽度
|
|
13136
13141
|
if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash){this.Frame.Draw({IsEnableSplash:this.ChartSplashPaint.IsEnableSplash});this.ChartSplashPaint.Draw();return;}this.Frame.Draw();this.Frame.DrawLogo();//框架内图形
|
|
13137
13142
|
for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.IsDrawFirst)item.Draw();}for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.IsDrawFirst)item.Draw();}};this.OnSize=function(){if(!this.Frame)return;this.SetSizeChange(true);this.Draw();};this.SetSizeChange=function(bChanged){for(var i=0;i<this.ChartPaint.length;++i){var chart=this.ChartPaint[i];if(chart)chart.SizeChange=bChanged;}};this.UpdateFrameMaxMin=function(){var max=null,min=null;for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.GetMaxMin)continue;var range=item.GetMaxMin();if(range==null||range.Max==null||range.Min==null)continue;if(max==null||max<range.Max)max=range.Max;if(min==null||min>range.Min)min=range.Min;}if(IFrameSplitOperator.IsNumber(max)&&IFrameSplitOperator.IsNumber(min)){this.Frame.HorizontalMax=max;this.Frame.HorizontalMin=min;}};//未启动
|
|
13138
|
-
this.UIOnDblClick=function(e){};this.CancelDragTimer=function(){if(this.DragTimer){clearTimeout(this.DragTimer);this.DragTimer=null;}};this.UIOnMouseDown=function(e){var
|
|
13143
|
+
this.UIOnDblClick=function(e){};this.CancelDragTimer=function(){if(this.DragTimer){clearTimeout(this.DragTimer);this.DragTimer=null;}};this.UIOnMouseDown=function(e){var _this69=this;this.CancelDragTimer();this.DragSlider=null;this.DragMove={Click:{X:e.clientX,Y:e.clientY},Move:{X:e.clientX,Y:e.clientY},PreMove:{X:e.clientX,Y:e.clientY}};var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;if(this.SliderChart){var clickData=this.SliderChart.PtInChart(x,y);if(!clickData){if(!this.Frame.PtInClient(x,y))return;//滚动块直接移动到鼠标点击的位置
|
|
13139
13144
|
var index=this.Frame.GetXData(x);index=Math.round(index);var pageRange=this.GetPageRange();var showCount=pageRange.ShowCount;var start=index-parseInt(showCount/2);if(start<0)start=0;var end=start+showCount;if(end>=this.Frame.XPointCount){end=this.Frame.XPointCount-1;start=end-showCount;}var drag={UpdateData:{StartIndex:start,EndIndex:end,Type:3}};this.DragUpdate(drag);return;}this.DragSlider={Click:{X:e.clientX,Y:e.clientY},LastMove:{X:e.clientX,Y:e.clientY},Data:clickData};this.DragSlider.DrawCount=0;//重绘次数
|
|
13140
|
-
}document.onmousemove=function(e){
|
|
13145
|
+
}document.onmousemove=function(e){_this69.DocOnMouseMove(e);};document.onmouseup=function(e){_this69.DocOnMouseUp(e);};};//去掉右键菜单
|
|
13141
13146
|
this.UIOnContextMenu=function(e){e.preventDefault();};this.UIOnMouseMove=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;if(this.DragSlider)return;var mouseStatus=mouseStatus={Cursor:"default"};;//鼠标状态
|
|
13142
|
-
var item=this.SliderChart.PtInChart(x,y);if(item){switch(item.Data.Type){case 0:mouseStatus={Cursor:"grab",Name:"SliderChart"};break;case 1:case 2:mouseStatus={Cursor:"col-resize",Name:"SliderChart"};break;}}if(mouseStatus)this.UIElement.style.cursor=mouseStatus.Cursor;};this.UIOnMounseOut=function(e){};this.UIOnMouseleave=function(e){};this.DocOnMouseMove=function(e){var
|
|
13147
|
+
var item=this.SliderChart.PtInChart(x,y);if(item){switch(item.Data.Type){case 0:mouseStatus={Cursor:"grab",Name:"SliderChart"};break;case 1:case 2:mouseStatus={Cursor:"col-resize",Name:"SliderChart"};break;}}if(mouseStatus)this.UIElement.style.cursor=mouseStatus.Cursor;};this.UIOnMounseOut=function(e){};this.UIOnMouseleave=function(e){};this.DocOnMouseMove=function(e){var _this70=this;this.DragMove.PreMove.X=this.DragMove.Move.X;this.DragMove.PreMove.Y=this.DragMove.Move.Y;this.DragMove.Move.X=e.clientX;this.DragMove.Move.Y=e.clientX;if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash==true)return;var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;JSConsole.Chart.Log('[JSScrollBarChartContainer::DocOnMouseMove] x='+x+', y='+y);if(this.DragSlider){var drag=this.DragSlider;var moveSetp=(e.clientX-drag.LastMove.X)*pixelTatio;if(Math.abs(moveSetp)<1)return;var pageRange=this.GetPageRange();var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();this.SliderChart.DragMode=true;var type=drag.Data.Data.Type;var xStart=this.SliderChart.XStart+moveSetp;var xEnd=this.SliderChart.XEnd+moveSetp;if(type==0)//整体移动
|
|
13143
13148
|
{if(xStart<left)//第1页
|
|
13144
13149
|
{xStart=pageRange.First.XStart;xEnd=pageRange.First.XEnd;}else if(xEnd>=right){xStart=pageRange.Last.XStart;xEnd=pageRange.Last.XEnd;}this.SliderChart.XStart=xStart;this.SliderChart.XEnd=xEnd;}else if(type==1)//左移动
|
|
13145
|
-
{if(xStart<=left){xStart=pageRange.First.XStart;}else if(xStart>=right){xStart=pageRange.Last.XEnd;}this.SliderChart.XStart=xStart;}else if(type==2){if(xEnd>=right){xEnd=pageRange.Last.XEnd;}else if(xEnd<=left){xEnd=pageRange.First.XStart;}this.SliderChart.XEnd=xEnd;}drag.UpdateData={XStart:xStart,XEnd:xEnd,Type:type};drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;if(drag.DrawCount==0){this.DragUpdate(drag);}else{this.DragTimer=setTimeout(function(){
|
|
13150
|
+
{if(xStart<=left){xStart=pageRange.First.XStart;}else if(xStart>=right){xStart=pageRange.Last.XEnd;}this.SliderChart.XStart=xStart;}else if(type==2){if(xEnd>=right){xEnd=pageRange.Last.XEnd;}else if(xEnd<=left){xEnd=pageRange.First.XStart;}this.SliderChart.XEnd=xEnd;}drag.UpdateData={XStart:xStart,XEnd:xEnd,Type:type};drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;if(drag.DrawCount==0){this.DragUpdate(drag);}else{this.DragTimer=setTimeout(function(){_this70.DragUpdate(_this70.DragSlider);},this.DelayDragFrequency);}}};this.DocOnMouseUp=function(e){//清空事件
|
|
13146
13151
|
document.onmousemove=null;document.onmouseup=null;this.CancelDragTimer();var dragSlider=this.DragSlider;this.DragMove=null;this.DragSlider=null;this.SliderChart.DragMode=false;this.DragUpdate(dragSlider);};this.DragUpdate=function(dragData){if(!dragData||!dragData.UpdateData)return;this.UpdateXDataOffset(dragData.UpdateData);this.Draw();++dragData.DrawCount;};this.Reset=function(option){this.SourceData=null;this.XOffsetData.Start=-1;this.XOffsetData.End=-1;this.XOffsetData.Count=0;this.Frame.Data=null;for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];item.Data=null;}if(this.ChartSplashPaint)this.ChartSplashPaint.IsEnableSplash=true;if(option.Draw)this.Draw();};//外部更新滑块 obj={ Start: , End: }
|
|
13147
13152
|
this.UpdateSlider=function(obj){if(this.SliderChart.DragMode)return;var bSizeChange=false;if((this.AutoMargin.Left||this.AutoMargin.Right)&&obj.Border){if(this.AutoMargin.Left){if(this.Frame.ChartBorder.Left!=obj.Border.Left)bSizeChange=true;}if(this.AutoMargin.Right){if(this.Frame.ChartBorder.Right!=obj.Border.Right)bSizeChange=true;}}var data=obj.Data;if(this.XOffsetData.Start==obj.Start&&this.XOffsetData.End==obj.End&&this.SourceData==data&&!bSizeChange)return;this.SourceData=data;var count=data.Data.length;if(IFrameSplitOperator.IsNumber(obj.RightSpaceCount))count+=obj.RightSpaceCount;this.Frame.XPointCount=count;this.Frame.Data=data;this.XOffsetData.Count=count;this.XOffsetData.Start=obj.Start;this.XOffsetData.End=obj.End;for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];item.Data=data;}if(this.AutoMargin.Left&&obj.Border){if(IFrameSplitOperator.IsNumber(obj.Border.Left))this.Frame.ChartBorder.Left=obj.Border.Left;}if(this.AutoMargin.Right&&obj.Border){if(IFrameSplitOperator.IsNumber(obj.Border.Right))this.Frame.ChartBorder.Right=obj.Border.Right;}this.UpdateFrameMaxMin();if(this.ChartSplashPaint)this.ChartSplashPaint.IsEnableSplash=false;if(obj.Draw)this.Draw();};//移动滑块
|
|
13148
13153
|
this.UpdateXDataOffset=function(obj){if(!obj)return;var type=obj.Type;if(obj.Type==0){var start=this.Frame.GetXData(obj.XStart);start=parseInt(start+0.5);//四舍五入
|
|
@@ -13214,15 +13219,15 @@ this.SelectedClassName="UMyChart_MenuItem_Tr_Selected";this.AryTDClassName=["UMy
|
|
|
13214
13219
|
"UMyChart_MenuItem_Td_Content",//文字
|
|
13215
13220
|
"UMyChart_MenuItem_Td_Shortcut",//快捷方式
|
|
13216
13221
|
"UMyChart_MenuItem_Td_Arrow"//箭头
|
|
13217
|
-
];this.Inital=function(){var
|
|
13222
|
+
];this.Inital=function(){var _this71=this;window.addEventListener('mousedown',function(e){_this71.OnWindowMouseDown(e);});};//创建菜单
|
|
13218
13223
|
this.CreatePopMenu=function(data){this.Clear();if(!IFrameSplitOperator.IsNonEmptyArray(data.Menu))return;var root=document.createElement("div");root.className="UMyChart_PopMenu";var table=document.createElement("table");table.className="UMyChart_PopMenu_Table";root.appendChild(table);var tbody=document.createElement("tbody");tbody.className="UMyChart_PopMenu_Tbody";table.appendChild(tbody);var rootData={Root:root,TBody:tbody,Table:table};for(var i=0;i<data.Menu.length;++i){var item=data.Menu[i];if(item.Name==JSPopMenu.SEPARATOR_LINE_NAME){var trSeparator=this.CreateSeparatorTr();if(trSeparator)tbody.appendChild(trSeparator);continue;}var trDom=this.CreateMenu(rootData,item);tbody.appendChild(trDom);}document.body.appendChild(root);this.RootDOM=root;this.TBodyDOM=tbody;if(IFrameSplitOperator.IsNumber(data.Position))this.Data.Position=data.Position;if(data.ClickCallback)this.ClickCallback=data.ClickCallback;};//清除菜单
|
|
13219
|
-
this.Clear=function(){this.Data.Menu=[];this.Data.Position=JSPopMenu.POSITION_ID.RIGHT_MENU_ID;this.ClickCallback=null;if(!this.RootDOM)return;document.body.removeChild(this.RootDOM);this.RootDOM=null;this.TBodyDOM=null;for(var i=0;i<this.ArySubRootDOM.length;++i){document.body.removeChild(this.ArySubRootDOM[i]);}this.ArySubRootDOM=[];};this.CreateMenu=function(parentItem,item){var
|
|
13224
|
+
this.Clear=function(){this.Data.Menu=[];this.Data.Position=JSPopMenu.POSITION_ID.RIGHT_MENU_ID;this.ClickCallback=null;if(!this.RootDOM)return;document.body.removeChild(this.RootDOM);this.RootDOM=null;this.TBodyDOM=null;for(var i=0;i<this.ArySubRootDOM.length;++i){document.body.removeChild(this.ArySubRootDOM[i]);}this.ArySubRootDOM=[];};this.CreateMenu=function(parentItem,item){var _this72=this;var trDom=document.createElement("tr");trDom.className='UMyChart_MenuItem_Tr';if(item.Disable===true)trDom.classList.add('UMyChart_DrawTool_Disable_Tr');var prtTdDom=null;for(var i=0;i<this.AryTDClassName.length;++i){var tdDom=document.createElement("td");tdDom.className=this.AryTDClassName[i];if(i==0)//图标
|
|
13220
13225
|
{if(item.Checked){var spanDom=document.createElement("span");spanDom.className=this.CheckedClassName;spanDom.style["font-size"]="10px";tdDom.appendChild(spanDom);}}else if(i==1)//内容
|
|
13221
13226
|
{tdDom.innerText=item.Name;}else if(i==2)//快捷方式
|
|
13222
13227
|
{}else if(i==3)//箭头
|
|
13223
13228
|
{if(IFrameSplitOperator.IsNonEmptyArray(item.SubMenu)){var spanDom=document.createElement("span");spanDom.className=this.RightArrowClassName;spanDom.style["font-size"]="10px";tdDom.appendChild(spanDom);}}trDom.appendChild(tdDom);}if(IFrameSplitOperator.IsNonEmptyArray(item.SubMenu))//子菜单
|
|
13224
|
-
{var subRoot=document.createElement("div");subRoot.className="UMyChart_PopSubMenu";var subTable=document.createElement("table");subTable.className="UMyChart_PopMenu_Table";subRoot.appendChild(subTable);var subTbody=document.createElement("tbody");subTbody.className="UMyChart_PopMenu_TBody";subTable.appendChild(subTbody);var subRootData={Root:subRoot,TBody:subTbody,Table:subTable};var preTrDom=null;for(var i=0;i<item.SubMenu.length;++i){var subItem=item.SubMenu[i];if(subItem.Name==JSPopMenu.SEPARATOR_LINE_NAME){var trSeparator=this.CreateSeparatorTr();if(trSeparator)subTbody.appendChild(trSeparator);continue;}var subTrDom=this.CreateMenu(subRootData,subItem);preTrDom=subTrDom;subTbody.appendChild(subTrDom);}trDom.onmouseover=function(e){
|
|
13225
|
-
trDom.onmouseover=function(e){
|
|
13229
|
+
{var subRoot=document.createElement("div");subRoot.className="UMyChart_PopSubMenu";var subTable=document.createElement("table");subTable.className="UMyChart_PopMenu_Table";subRoot.appendChild(subTable);var subTbody=document.createElement("tbody");subTbody.className="UMyChart_PopMenu_TBody";subTable.appendChild(subTbody);var subRootData={Root:subRoot,TBody:subTbody,Table:subTable};var preTrDom=null;for(var i=0;i<item.SubMenu.length;++i){var subItem=item.SubMenu[i];if(subItem.Name==JSPopMenu.SEPARATOR_LINE_NAME){var trSeparator=this.CreateSeparatorTr();if(trSeparator)subTbody.appendChild(trSeparator);continue;}var subTrDom=this.CreateMenu(subRootData,subItem);preTrDom=subTrDom;subTbody.appendChild(subTrDom);}trDom.onmouseover=function(e){_this72.OnMouseOver(e,parentItem,trDom,subRoot);};document.body.appendChild(subRoot);this.ArySubRootDOM.push(subRoot);}else{if(item.Disable===true){}else{trDom.onmousedown=function(e){_this72.OnClickMenu(e,item,false);};//菜单点击
|
|
13230
|
+
trDom.onmouseover=function(e){_this72.OnMouseOver(e,parentItem);};}}return trDom;};this.CreateSeparatorTr=function(){var trSeparator=document.createElement("tr");trSeparator.className='UMyChart_MenuItem_Tr_Separator';var tdDom=document.createElement("td");tdDom.className="UMyChart_MenuItem_Td_Status_Separator";trSeparator.appendChild(tdDom);var tdDom=document.createElement("td");tdDom.className="UMyChart_MenuItem_Td_Separator";trSeparator.appendChild(tdDom);var tdDom=document.createElement("td");tdDom.className="UMyChart_MenuItem_Td_Separator";trSeparator.appendChild(tdDom);var tdDom=document.createElement("td");tdDom.className="UMyChart_MenuItem_Td_Separator";trSeparator.appendChild(tdDom);return trSeparator;};//弹tab菜单
|
|
13226
13231
|
this.PopupMenuByTab=function(rtTab){if(!this.RootDOM)return;if(!rtTab)return;var xLeft=rtTab.Left;var yTop=rtTab.Top-this.RootDOM.offsetHeight;this.RootDOM.style.visibility='visible';this.RootDOM.style.top=yTop+"px";this.RootDOM.style.left=xLeft+"px";};//弹右键菜单
|
|
13227
13232
|
this.PopupMenuByRight=function(x,y){if(!this.RootDOM)return;if(!IFrameSplitOperator.IsNumber(x)||!IFrameSplitOperator.IsNumber(y))return;//菜单在当前屏幕无法显示需要调整
|
|
13228
13233
|
var menuHeight=this.RootDOM.offsetHeight;var yMenuBottom=y+menuHeight;var yBottom=window.innerHeight-15;if(yMenuBottom>yBottom)y=yBottom-menuHeight;var menuWidth=this.RootDOM.offsetWidth;var yMenuRight=x+menuWidth;var yRight=window.innerWidth-15;if(yMenuRight>yRight)x=yRight-menuWidth;this.RootDOM.style.visibility='visible';this.RootDOM.style.top=y+"px";this.RootDOM.style.left=x+"px";};//下拉菜单
|
|
@@ -13255,17 +13260,17 @@ JSPopMenu.SEPARATOR_LINE_NAME="MENU_SEPARATOR";//分割线
|
|
|
13255
13260
|
CMD_DELETE_DRAW_CHART_ID:6,CMD_CHANGE_FONT_COLOR_ID:7,//切换字体颜色
|
|
13256
13261
|
CMD_CHANGE_BG_COLOR_ID:8,//切换背景色
|
|
13257
13262
|
CMD_CHANGE_BORDER_COLOR_ID:9//边框颜色
|
|
13258
|
-
};function JSDialogDrawTool(){this.AryChartGroup=[{Title:"线段",AryChart:[{Title:'线段',ClassName:'hqchart_drawtool icon-draw_line',Type:0,Data:{ID:"线段"}},{Title:'线段信息',ClassName:'hqchart_drawtool icon-infoline',Type:0,Data:{ID:"InfoLine"}},{Title:'射线',ClassName:'hqchart_drawtool icon-draw_rays',Type:0,Data:{ID:"射线"}},{Title:"趋势线角度",ClassName:"hqchart_drawtool icon-qushixianjiaodu",Type:0,Data:{ID:"TrendAngle"}},{Title:'标价线',ClassName:'hqchart_drawtool icon-price_line',Type:0,Data:{ID:"标价线"}},{Title:'垂直线',ClassName:'hqchart_drawtool icon-vertical_line',Type:0,Data:{ID:"垂直线"}},{Title:'十字线',ClassName:'hqchart_drawtool icon-tubiao_shizixian',Type:0,Data:{ID:"十字线"}},{Title:'箭头',ClassName:'hqchart_drawtool icon-draw_rays',Type:0,Data:{ID:"箭头"}},{Title:'趋势线',ClassName:'hqchart_drawtool icon-draw_trendline',Type:0,Data:{ID:"趋势线"}},{Title:'水平线',ClassName:'hqchart_drawtool icon-draw_hline',Type:0,Data:{ID:"水平线"}},{Title:'水平射线',ClassName:'hqchart_drawtool icon-tubiao_shuipingshexian',Type:0,Data:{ID:"水平射线"}},{Title:'涂鸦线段',ClassName:'hqchart_drawtool icon-draw_line',Type:0,Data:{ID:"涂鸦线段"}},{Title:'阻速线',ClassName:'hqchart_drawtool icon-draw_resline',Type:0,Data:{ID:"阻速线"}},{Title:'江恩角度线',ClassName:'hqchart_drawtool icon-jiangenjiaoduxian',Type:0,Data:{ID:"江恩角度线"}}]},{Title:"通道",AryChart:[{Title:'平行线',ClassName:'hqchart_drawtool icon-draw_parallel_lines',Type:0,Data:{ID:"平行线"}},{Title:'水平线段',ClassName:'hqchart_drawtool icon-draw_hlinesegment',Type:0,Data:{ID:"水平线段"}},{Title:'平行射线',ClassName:'hqchart_drawtool icon-draw_p_rays_lines',Type:0,Data:{ID:"平行射线"}},{Title:'平行通道',ClassName:'hqchart_drawtool icon-draw_parallelchannel',Type:0,Data:{ID:"平行通道"}},{Title:'价格通道线',ClassName:'hqchart_drawtool icon-draw_pricechannel',Type:0,Data:{ID:"价格通道线"}},{Title:'箱型线',ClassName:'hqchart_drawtool icon-draw_box',Type:0,Data:{ID:"箱型线"}},{Title:"不相交通道",ClassName:"hqchart_drawtool icon-buxiangjiaojiao",Type:0,Data:{ID:"DisjointChannel"}},{Title:"平滑顶/底",ClassName:"hqchart_drawtool icon-tubiao_buxiangjiaotongdao",Type:0,Data:{ID:"FlatTop"}},{Title:"波段线",ClassName:'hqchart_drawtool icon-draw_waveband',Type:0,Data:{ID:"波段线"}},{Title:"百分比线",ClassName:'hqchart_drawtool icon-PercentageLine',Type:0,Data:{ID:"百分比线"}},{Title:"黄金分割",ClassName:'hqchart_drawtool icon-GoldenSection',Type:0,Data:{ID:"黄金分割"}},{Title:"线形回归线",ClassName:'hqchart_drawtool icon-linear_3',Type:0,Data:{ID:"线形回归线"}},{Title:"线形回归带",ClassName:'hqchart_drawtool icon-linear_1',Type:0,Data:{ID:"线形回归带"}},{Title:"延长线形回归带",ClassName:'hqchart_drawtool icon-linear_2',Type:0,Data:{ID:"延长线形回归带"}}]},{Title:"形状",AryChart:[{Title:'圆弧线',ClassName:'hqchart_drawtool icon-draw_arc',Type:0,Data:{ID:"圆弧线"}},{Title:'矩形',ClassName:'hqchart_drawtool icon-rectangle',Type:0,Data:{ID:"矩形"}},{Title:'平行四边形',ClassName:'hqchart_drawtool icon-draw_quadrangle',Type:0,Data:{ID:"平行四边形"}},{Title:'三角形',ClassName:'hqchart_drawtool icon-draw_triangle',Type:0,Data:{ID:"三角形"}},{Title:'圆',ClassName:'hqchart_drawtool icon-draw_circle',Type:0,Data:{ID:"圆"}},{Title:'对称角度',ClassName:'hqchart_drawtool icon-draw_symangle',Type:0,Data:{ID:"对称角度"}}]},{Title:"波浪线",AryChart:[{Title:'M头W底',ClassName:'hqchart_drawtool icon-draw_wavemw',Type:0,Data:{ID:"M头W底"}},{Title:'头肩型',ClassName:'hqchart_drawtool icon-draw_head_shoulders_bt',Type:0,Data:{ID:"头肩型"}},{Title:'波浪尺',ClassName:'hqchart_drawtool icon-waveruler',Type:0,Data:{ID:"波浪尺"}},{Title:'AB波浪尺',ClassName:'hqchart_drawtool icon-waveruler',Type:0,Data:{ID:"AB波浪尺"}}]},{Title:"斐波那契",AryChart:[{Title:'斐波那契周期线',ClassName:'hqchart_drawtool icon-feibonaqizhouqixian',Type:0,Data:{ID:"斐波那契周期线"}},{Title:'斐波那契楔形',ClassName:'hqchart_drawtool icon-feibonaqiqixing',Type:0,Data:{ID:"FibWedge"}},{Title:'斐波那契回撤',ClassName:'hqchart_drawtool icon-feibonaqihuiche',Type:0,Data:{ID:"FibRetracement"}},{Title:'斐波那契速度阻力扇',ClassName:'hqchart_drawtool icon-feibonaqisuduzulishan',Type:0,Data:{ID:"FibSpeedResistanceFan"}}]},{Title:"测量工具",AryChart:[{Title:'价格范围',ClassName:'hqchart_drawtool icon-shijianfanwei',Type:0,Data:{ID:"PriceRange"}},{Title:'时间范围',ClassName:'hqchart_drawtool icon-jiagefanwei',Type:0,Data:{ID:"DateRange"}},{Title:"监测线",ClassName:"hqchart_drawtool icon-jiance",Type:0,Data:{ID:"MonitorLine"}}]},{Title:"文字",AryChart:[{Title:"文字",ClassName:'hqchart_drawtool icon-draw_text',Type:0,Data:{ID:"文本"}},{Title:"锚点文字",ClassName:'hqchart_drawtool icon-maodianwenzi',Type:0,Data:{ID:"AnchoredText"}},{Title:"注释",ClassName:'hqchart_drawtool icon-maodian ',Type:0,Data:{ID:"Note"}},{Title:'价格标签',ClassName:'hqchart_drawtool icon-Tooltip',Type:0,Data:{ID:"PriceLabel"}},{Title:'价格注释',ClassName:'hqchart_drawtool icon-tooltiptext',Type:0,Data:{ID:"PriceNote"}},{Title:'向上箭头',ClassName:'iconfont icon-arrow_up',Type:0,Data:{ID:"icon-arrow_up"}},{Title:'向下箭头',ClassName:'iconfont icon-arrow_down',Type:0,Data:{ID:"icon-arrow_down"}},{Title:'向左箭头',ClassName:'iconfont icon-arrow_left',Type:0,Data:{ID:"icon-arrow_left"}},{Title:'向右箭头',ClassName:'iconfont icon-arrow_right',Type:0,Data:{ID:"icon-arrow_right"}}]}];this.ToolConfig={Title:"工具",AryTool:[{Title:"选中",ClassName:'hqchart_drawtool icon-arrow',Type:1,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_SELECTED_ID}},{Title:'尺子',ClassName:'hqchart_drawtool icon-ruler',Type:0,Data:{ID:"尺子"}},{Title:"磁铁",ClassName:'hqchart_drawtool icon-xifu',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_ENABLE_MAGNET_ID}},{Title:"点击切换颜色",ClassName:'hqchart_drawtool icon-fangkuai',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_CHANGE_LINE_COLOR_ID}},{Title:"擦除画线",ClassName:'hqchart_drawtool icon-a-xiangpicachuxiangpica',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_ERASE_DRAW_CHART_ID}},{Title:"删除所有画线",ClassName:'hqchart_drawtool icon-recycle_bin',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_DELETE_ALL_DRAW_CHART_ID}}]};this.DivDialog=null;this.AryDivChart=[];this.HQChart=null;this.LineColor='rgb(255,140,0)';this.LineColorIndex=0;this.RandomLineColor=["rgb(255,69,0)","rgb(0,191,255)","rgb(255,0,255)","rgb(255,105,180)"];this.LineWidth=1*GetDevicePixelRatio();this.ColumnCount=5;this.DragTitle=null;this.Inital=function(hqchart){this.LineColor=g_JSChartResource.DrawPicture.LineColor[0];this.RandomLineColor.splice(0,0,this.LineColor);this.HQChart=hqchart;};this.Create=function(){var
|
|
13259
|
-
this.CreateToolGroup(tbody);this.DivDialog=divDom;document.body.appendChild(divDom);};this.Destroy=function(){this.AryDivChart=[];document.body.remove(this.DivDialog);this.DivDialog=null;};this.CreateChartGroupItem=function(groupItem,tbody){var trDom=document.createElement("tr");trDom.className='UMyChart_DrawTool_Group_Tr';tbody.appendChild(trDom);var tdDom=document.createElement("td");tdDom.className="UMyChart_DrawTool_Group_Td";tdDom.innerText=groupItem.Title;tdDom.colSpan=this.ColumnCount;trDom.appendChild(tdDom);var chartCount=groupItem.AryChart.length;for(var i=0,j=0;i<chartCount;){var trDom=document.createElement("tr");trDom.className='UMyChart_DrawTool_Tr';for(j=0;j<this.ColumnCount&&i<chartCount;++j,++i){var item=groupItem.AryChart[i];this.CreateChartItem(item,trDom);}tbody.appendChild(trDom);}};this.CreateChartItem=function(item,trDom){var
|
|
13263
|
+
};function JSDialogDrawTool(){this.AryChartGroup=[{Title:"线段",AryChart:[{Title:'线段',ClassName:'hqchart_drawtool icon-draw_line',Type:0,Data:{ID:"线段"}},{Title:'线段信息',ClassName:'hqchart_drawtool icon-infoline',Type:0,Data:{ID:"InfoLine"}},{Title:'射线',ClassName:'hqchart_drawtool icon-draw_rays',Type:0,Data:{ID:"射线"}},{Title:"趋势线角度",ClassName:"hqchart_drawtool icon-qushixianjiaodu",Type:0,Data:{ID:"TrendAngle"}},{Title:'标价线',ClassName:'hqchart_drawtool icon-price_line',Type:0,Data:{ID:"标价线"}},{Title:'垂直线',ClassName:'hqchart_drawtool icon-vertical_line',Type:0,Data:{ID:"垂直线"}},{Title:'十字线',ClassName:'hqchart_drawtool icon-tubiao_shizixian',Type:0,Data:{ID:"十字线"}},{Title:'箭头',ClassName:'hqchart_drawtool icon-draw_rays',Type:0,Data:{ID:"箭头"}},{Title:'趋势线',ClassName:'hqchart_drawtool icon-draw_trendline',Type:0,Data:{ID:"趋势线"}},{Title:'水平线',ClassName:'hqchart_drawtool icon-draw_hline',Type:0,Data:{ID:"水平线"}},{Title:'水平射线',ClassName:'hqchart_drawtool icon-tubiao_shuipingshexian',Type:0,Data:{ID:"水平射线"}},{Title:'涂鸦线段',ClassName:'hqchart_drawtool icon-draw_line',Type:0,Data:{ID:"涂鸦线段"}},{Title:'阻速线',ClassName:'hqchart_drawtool icon-draw_resline',Type:0,Data:{ID:"阻速线"}},{Title:'江恩角度线',ClassName:'hqchart_drawtool icon-jiangenjiaoduxian',Type:0,Data:{ID:"江恩角度线"}}]},{Title:"通道",AryChart:[{Title:'平行线',ClassName:'hqchart_drawtool icon-draw_parallel_lines',Type:0,Data:{ID:"平行线"}},{Title:'水平线段',ClassName:'hqchart_drawtool icon-draw_hlinesegment',Type:0,Data:{ID:"水平线段"}},{Title:'平行射线',ClassName:'hqchart_drawtool icon-draw_p_rays_lines',Type:0,Data:{ID:"平行射线"}},{Title:'平行通道',ClassName:'hqchart_drawtool icon-draw_parallelchannel',Type:0,Data:{ID:"平行通道"}},{Title:'价格通道线',ClassName:'hqchart_drawtool icon-draw_pricechannel',Type:0,Data:{ID:"价格通道线"}},{Title:'箱型线',ClassName:'hqchart_drawtool icon-draw_box',Type:0,Data:{ID:"箱型线"}},{Title:"不相交通道",ClassName:"hqchart_drawtool icon-buxiangjiaojiao",Type:0,Data:{ID:"DisjointChannel"}},{Title:"平滑顶/底",ClassName:"hqchart_drawtool icon-tubiao_buxiangjiaotongdao",Type:0,Data:{ID:"FlatTop"}},{Title:"波段线",ClassName:'hqchart_drawtool icon-draw_waveband',Type:0,Data:{ID:"波段线"}},{Title:"百分比线",ClassName:'hqchart_drawtool icon-PercentageLine',Type:0,Data:{ID:"百分比线"}},{Title:"黄金分割",ClassName:'hqchart_drawtool icon-GoldenSection',Type:0,Data:{ID:"黄金分割"}},{Title:"线形回归线",ClassName:'hqchart_drawtool icon-linear_3',Type:0,Data:{ID:"线形回归线"}},{Title:"线形回归带",ClassName:'hqchart_drawtool icon-linear_1',Type:0,Data:{ID:"线形回归带"}},{Title:"延长线形回归带",ClassName:'hqchart_drawtool icon-linear_2',Type:0,Data:{ID:"延长线形回归带"}}]},{Title:"形状",AryChart:[{Title:'圆弧线',ClassName:'hqchart_drawtool icon-draw_arc',Type:0,Data:{ID:"圆弧线"}},{Title:'矩形',ClassName:'hqchart_drawtool icon-rectangle',Type:0,Data:{ID:"矩形"}},{Title:'平行四边形',ClassName:'hqchart_drawtool icon-draw_quadrangle',Type:0,Data:{ID:"平行四边形"}},{Title:'三角形',ClassName:'hqchart_drawtool icon-draw_triangle',Type:0,Data:{ID:"三角形"}},{Title:'圆',ClassName:'hqchart_drawtool icon-draw_circle',Type:0,Data:{ID:"圆"}},{Title:'对称角度',ClassName:'hqchart_drawtool icon-draw_symangle',Type:0,Data:{ID:"对称角度"}}]},{Title:"波浪线",AryChart:[{Title:'M头W底',ClassName:'hqchart_drawtool icon-draw_wavemw',Type:0,Data:{ID:"M头W底"}},{Title:'头肩型',ClassName:'hqchart_drawtool icon-draw_head_shoulders_bt',Type:0,Data:{ID:"头肩型"}},{Title:'波浪尺',ClassName:'hqchart_drawtool icon-waveruler',Type:0,Data:{ID:"波浪尺"}},{Title:'AB波浪尺',ClassName:'hqchart_drawtool icon-waveruler',Type:0,Data:{ID:"AB波浪尺"}}]},{Title:"斐波那契",AryChart:[{Title:'斐波那契周期线',ClassName:'hqchart_drawtool icon-feibonaqizhouqixian',Type:0,Data:{ID:"斐波那契周期线"}},{Title:'斐波那契楔形',ClassName:'hqchart_drawtool icon-feibonaqiqixing',Type:0,Data:{ID:"FibWedge"}},{Title:'斐波那契回撤',ClassName:'hqchart_drawtool icon-feibonaqihuiche',Type:0,Data:{ID:"FibRetracement"}},{Title:'斐波那契速度阻力扇',ClassName:'hqchart_drawtool icon-feibonaqisuduzulishan',Type:0,Data:{ID:"FibSpeedResistanceFan"}}]},{Title:"测量工具",AryChart:[{Title:'价格范围',ClassName:'hqchart_drawtool icon-shijianfanwei',Type:0,Data:{ID:"PriceRange"}},{Title:'时间范围',ClassName:'hqchart_drawtool icon-jiagefanwei',Type:0,Data:{ID:"DateRange"}},{Title:"监测线",ClassName:"hqchart_drawtool icon-jiance",Type:0,Data:{ID:"MonitorLine"}}]},{Title:"文字",AryChart:[{Title:"文字",ClassName:'hqchart_drawtool icon-draw_text',Type:0,Data:{ID:"文本"}},{Title:"锚点文字",ClassName:'hqchart_drawtool icon-maodianwenzi',Type:0,Data:{ID:"AnchoredText"}},{Title:"注释",ClassName:'hqchart_drawtool icon-maodian ',Type:0,Data:{ID:"Note"}},{Title:'价格标签',ClassName:'hqchart_drawtool icon-Tooltip',Type:0,Data:{ID:"PriceLabel"}},{Title:'价格注释',ClassName:'hqchart_drawtool icon-tooltiptext',Type:0,Data:{ID:"PriceNote"}},{Title:'向上箭头',ClassName:'iconfont icon-arrow_up',Type:0,Data:{ID:"icon-arrow_up"}},{Title:'向下箭头',ClassName:'iconfont icon-arrow_down',Type:0,Data:{ID:"icon-arrow_down"}},{Title:'向左箭头',ClassName:'iconfont icon-arrow_left',Type:0,Data:{ID:"icon-arrow_left"}},{Title:'向右箭头',ClassName:'iconfont icon-arrow_right',Type:0,Data:{ID:"icon-arrow_right"}}]}];this.ToolConfig={Title:"工具",AryTool:[{Title:"选中",ClassName:'hqchart_drawtool icon-arrow',Type:1,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_SELECTED_ID}},{Title:'尺子',ClassName:'hqchart_drawtool icon-ruler',Type:0,Data:{ID:"尺子"}},{Title:"磁铁",ClassName:'hqchart_drawtool icon-xifu',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_ENABLE_MAGNET_ID}},{Title:"点击切换颜色",ClassName:'hqchart_drawtool icon-fangkuai',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_CHANGE_LINE_COLOR_ID}},{Title:"擦除画线",ClassName:'hqchart_drawtool icon-a-xiangpicachuxiangpica',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_ERASE_DRAW_CHART_ID}},{Title:"删除所有画线",ClassName:'hqchart_drawtool icon-recycle_bin',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_DELETE_ALL_DRAW_CHART_ID}}]};this.DivDialog=null;this.AryDivChart=[];this.HQChart=null;this.LineColor='rgb(255,140,0)';this.LineColorIndex=0;this.RandomLineColor=["rgb(255,69,0)","rgb(0,191,255)","rgb(255,0,255)","rgb(255,105,180)"];this.LineWidth=1*GetDevicePixelRatio();this.ColumnCount=5;this.DragTitle=null;this.Inital=function(hqchart){this.LineColor=g_JSChartResource.DrawPicture.LineColor[0];this.RandomLineColor.splice(0,0,this.LineColor);this.HQChart=hqchart;};this.Create=function(){var _this73=this;var divDom=document.createElement("div");divDom.className='UMyChart_DrawTool_Dialog_Div';var divTitle=document.createElement("div");divTitle.className='UMyChart_DrawTool_Title_Div';divTitle.innerText="画图工具";divTitle.onmousedown=function(e){_this73.OnMouseDownTitle(e);};var divClose=document.createElement("div");divClose.className='UMyChart_DrawTool_Close_Div';divClose.innerText="x";divClose.onmousedown=function(e){_this73.Close(e);};divTitle.appendChild(divClose);divDom.appendChild(divTitle);var table=document.createElement("table");table.className="UMyChart_DrawTool_Table";divDom.appendChild(table);var tbody=document.createElement("tbody");tbody.className="UMyChart_DrawTool_Tbody";table.appendChild(tbody);for(var i=0;i<this.AryChartGroup.length;++i){var item=this.AryChartGroup[i];if(!IFrameSplitOperator.IsNonEmptyArray(item.AryChart))continue;this.CreateChartGroupItem(item,tbody);var trDom=document.createElement("tr");trDom.className='UMyChart_DrawTool_Group_End_Tr';tbody.appendChild(trDom);}//工具栏
|
|
13264
|
+
this.CreateToolGroup(tbody);this.DivDialog=divDom;document.body.appendChild(divDom);};this.Destroy=function(){this.AryDivChart=[];document.body.remove(this.DivDialog);this.DivDialog=null;};this.CreateChartGroupItem=function(groupItem,tbody){var trDom=document.createElement("tr");trDom.className='UMyChart_DrawTool_Group_Tr';tbody.appendChild(trDom);var tdDom=document.createElement("td");tdDom.className="UMyChart_DrawTool_Group_Td";tdDom.innerText=groupItem.Title;tdDom.colSpan=this.ColumnCount;trDom.appendChild(tdDom);var chartCount=groupItem.AryChart.length;for(var i=0,j=0;i<chartCount;){var trDom=document.createElement("tr");trDom.className='UMyChart_DrawTool_Tr';for(j=0;j<this.ColumnCount&&i<chartCount;++j,++i){var item=groupItem.AryChart[i];this.CreateChartItem(item,trDom);}tbody.appendChild(trDom);}};this.CreateChartItem=function(item,trDom){var _this74=this;var tdDom=document.createElement("td");tdDom.className="UMyChart_DrawTool_Td";tdDom.title=item.Title;trDom.appendChild(tdDom);var spanDom=document.createElement("span");spanDom.className=item.ClassName;spanDom.classList.add("UMyChart_DrawTool_Span");tdDom.appendChild(spanDom);var data={Item:item,TD:tdDom,Span:spanDom};tdDom.onmousedown=function(e){_this74.OnClickItem(e,data);};//点击
|
|
13260
13265
|
this.AryDivChart.push(data);};this.OnClickItem=function(e,data){console.log('[JSDialogDrawTool::OnClickChartItem] ',data);if(!data.Item||!data.Item.Data)return;var type=data.Item.Type;var id=data.Item.Data.ID;if(type==2&&id==JS_DRAWTOOL_MENU_ID.CMD_CHANGE_LINE_COLOR_ID){this.OnChangeLineColor(data);}else if(type==2&&id==JS_DRAWTOOL_MENU_ID.CMD_DELETE_ALL_DRAW_CHART_ID){this.DeleteAllChart();}else if(type==2&&id==JS_DRAWTOOL_MENU_ID.CMD_ERASE_DRAW_CHART_ID){this.ClearAllSelectedChart();this.ClearCurrnetDrawPicture();this.EnableEraseChart(true);}else if(type==1&&id==JS_DRAWTOOL_MENU_ID.CMD_SELECTED_ID){this.ClearAllSelectedChart();this.ClearCurrnetDrawPicture();this.EnableEraseChart(false);}else if(type==2&&id==JS_DRAWTOOL_MENU_ID.CMD_ENABLE_MAGNET_ID){this.ChangeMagnet(data);}else if(type==0){this.ClearAllSelectedChart();this.EnableEraseChart(false);data.Span.classList.remove("UMyChart_DrawTool_Span");data.Span.classList.add("UMyChart_DrawTool_Span_Selected");this.CreateDrawPicture(data);}};//清空选中状态
|
|
13261
|
-
this.ClearAllSelectedChart=function(){for(var i=0;i<this.AryDivChart.length;++i){var item=this.AryDivChart[i];if(item.Item.Type==2)continue;item.Span.classList.remove("UMyChart_DrawTool_Span_Selected");item.Span.classList.add("UMyChart_DrawTool_Span");}};this.CreateToolGroup=function(tbody){var trDom=document.createElement("tr");trDom.className='UMyChart_DrawTool_Group_Tr';tbody.appendChild(trDom);var tdDom=document.createElement("td");tdDom.className="UMyChart_DrawTool_Group_Td";tdDom.innerText=this.ToolConfig.Title;tdDom.colSpan=this.ColumnCount;trDom.appendChild(tdDom);var chartCount=this.ToolConfig.AryTool.length;for(var i=0,j=0;i<chartCount;){var trDom=document.createElement("tr");trDom.className='UMyChart_DrawTool_Tr';for(j=0;j<this.ColumnCount&&i<chartCount;++j,++i){var item=this.ToolConfig.AryTool[i];this.CreateToolItem(item,trDom);}tbody.appendChild(trDom);}};this.CreateToolItem=function(item,trDom){var
|
|
13262
|
-
{spanDom.style['color']=this.LineColor;}tdDom.onmousedown=function(e){
|
|
13266
|
+
this.ClearAllSelectedChart=function(){for(var i=0;i<this.AryDivChart.length;++i){var item=this.AryDivChart[i];if(item.Item.Type==2)continue;item.Span.classList.remove("UMyChart_DrawTool_Span_Selected");item.Span.classList.add("UMyChart_DrawTool_Span");}};this.CreateToolGroup=function(tbody){var trDom=document.createElement("tr");trDom.className='UMyChart_DrawTool_Group_Tr';tbody.appendChild(trDom);var tdDom=document.createElement("td");tdDom.className="UMyChart_DrawTool_Group_Td";tdDom.innerText=this.ToolConfig.Title;tdDom.colSpan=this.ColumnCount;trDom.appendChild(tdDom);var chartCount=this.ToolConfig.AryTool.length;for(var i=0,j=0;i<chartCount;){var trDom=document.createElement("tr");trDom.className='UMyChart_DrawTool_Tr';for(j=0;j<this.ColumnCount&&i<chartCount;++j,++i){var item=this.ToolConfig.AryTool[i];this.CreateToolItem(item,trDom);}tbody.appendChild(trDom);}};this.CreateToolItem=function(item,trDom){var _this75=this;var tdDom=document.createElement("td");tdDom.className="UMyChart_DrawTool_Td";tdDom.title=item.Title;trDom.appendChild(tdDom);var spanDom=document.createElement("span");spanDom.className=item.ClassName;spanDom.classList.add("UMyChart_DrawTool_Span");tdDom.appendChild(spanDom);var data={Item:item,TD:tdDom,Span:spanDom};if(item.Type==2&&item.Data.ID==JS_DRAWTOOL_MENU_ID.CMD_CHANGE_LINE_COLOR_ID)//颜色
|
|
13267
|
+
{spanDom.style['color']=this.LineColor;}tdDom.onmousedown=function(e){_this75.OnClickItem(e,data);};//点击
|
|
13263
13268
|
this.AryDivChart.push(data);};this.OnChangeLineColor=function(data){++this.LineColorIndex;var index=this.LineColorIndex%this.RandomLineColor.length;this.LineColor=this.RandomLineColor[index];data.Span.style['color']=this.LineColor;};//清空所有画图工具
|
|
13264
|
-
this.DeleteAllChart=function(){if(!this.HQChart)return;this.HQChart.ClearChartDrawPicture();};this.SetEraseChartButtonStatus=function(enable){for(var i=0;i<this.AryDivChart.length;++i){var item=this.AryDivChart[i];if(item.Item.Type==2&&item.Item.Data&&item.Item.Data.ID==JS_DRAWTOOL_MENU_ID.CMD_ERASE_DRAW_CHART_ID){if(enable){if(item.Span.classList.contains("UMyChart_DrawTool_Span")){item.Span.classList.replace("UMyChart_DrawTool_Span","UMyChart_DrawTool_Span_Selected");}}else{if(item.Span.classList.contains("UMyChart_DrawTool_Span_Selected")){item.Span.classList.replace("UMyChart_DrawTool_Span_Selected","UMyChart_DrawTool_Span");}}break;}}};this.EnableEraseChart=function(enable){if(!this.HQChart)return;if(this.HQChart.EnableEraseChartDrawPicture==enable)return;this.HQChart.EnableEraseChartDrawPicture=enable;this.SetEraseChartButtonStatus(enable);};this.ChangeMagnet=function(data){if(!this.HQChart)return;var enable=true;if(this.HQChart.ChartDrawOption.Magnet){var item=this.HQChart.ChartDrawOption.Magnet;var enable=!item.Enable;}if(enable){this.HQChart.SetChartDrawOption({Magnet:{Enable:enable,Type:0}});data.Span.classList.remove("UMyChart_DrawTool_Span");data.Span.classList.add("UMyChart_DrawTool_Span_Selected");}else{this.HQChart.SetChartDrawOption({Magnet:{Enable:false}});data.Span.classList.remove("UMyChart_DrawTool_Span_Selected");data.Span.classList.add("UMyChart_DrawTool_Span");}};this.CreateDrawPicture=function(data){var
|
|
13269
|
+
this.DeleteAllChart=function(){if(!this.HQChart)return;this.HQChart.ClearChartDrawPicture();};this.SetEraseChartButtonStatus=function(enable){for(var i=0;i<this.AryDivChart.length;++i){var item=this.AryDivChart[i];if(item.Item.Type==2&&item.Item.Data&&item.Item.Data.ID==JS_DRAWTOOL_MENU_ID.CMD_ERASE_DRAW_CHART_ID){if(enable){if(item.Span.classList.contains("UMyChart_DrawTool_Span")){item.Span.classList.replace("UMyChart_DrawTool_Span","UMyChart_DrawTool_Span_Selected");}}else{if(item.Span.classList.contains("UMyChart_DrawTool_Span_Selected")){item.Span.classList.replace("UMyChart_DrawTool_Span_Selected","UMyChart_DrawTool_Span");}}break;}}};this.EnableEraseChart=function(enable){if(!this.HQChart)return;if(this.HQChart.EnableEraseChartDrawPicture==enable)return;this.HQChart.EnableEraseChartDrawPicture=enable;this.SetEraseChartButtonStatus(enable);};this.ChangeMagnet=function(data){if(!this.HQChart)return;var enable=true;if(this.HQChart.ChartDrawOption.Magnet){var item=this.HQChart.ChartDrawOption.Magnet;var enable=!item.Enable;}if(enable){this.HQChart.SetChartDrawOption({Magnet:{Enable:enable,Type:0}});data.Span.classList.remove("UMyChart_DrawTool_Span");data.Span.classList.add("UMyChart_DrawTool_Span_Selected");}else{this.HQChart.SetChartDrawOption({Magnet:{Enable:false}});data.Span.classList.remove("UMyChart_DrawTool_Span_Selected");data.Span.classList.add("UMyChart_DrawTool_Span");}};this.CreateDrawPicture=function(data){var _this76=this;if(!this.HQChart)return null;var option={LineColor:this.LineColor,//线段颜色
|
|
13265
13270
|
LineWidth:this.LineWidth,//线段宽度
|
|
13266
13271
|
PointColor:this.LineColor//点颜色
|
|
13267
|
-
};var name=data.Item.Data.ID;if(["icon-arrow_up","icon-arrow_down","icon-arrow_left","icon-arrow_right"].includes(name))option=null;else if(name=="InfoLine")option.FormatLabelTextCallback=function(lableInfo){
|
|
13268
|
-
this.OnFinishDrawPicture=function(chart,data){data.Span.classList.remove("UMyChart_DrawTool_Span_Selected");data.Span.classList.add("UMyChart_DrawTool_Span");};this.Show=function(x,y){if(!this.DivDialog)return;this.DivDialog.style.visibility='visible';this.DivDialog.style.top=y+"px";this.DivDialog.style.left=x+"px";};this.Close=function(e){if(!this.DivDialog)return;this.DivDialog.style.visibility='hidden';};this.IsShow=function(){if(!this.DivDialog)return false;return this.DivDialog.style.visibility==='visible';};this.OnMouseDownTitle=function(e){var
|
|
13272
|
+
};var name=data.Item.Data.ID;if(["icon-arrow_up","icon-arrow_down","icon-arrow_left","icon-arrow_right"].includes(name))option=null;else if(name=="InfoLine")option.FormatLabelTextCallback=function(lableInfo){_this76.ChartInfoLine_FormatLabelText(lableInfo);};else if(name=="MonitorLine")option.FormatLabelTextCallback=function(lableInfo){_this76.ChartDrawMonitorLine_FormatLabelText(lableInfo);};this.HQChart.CreateChartDrawPicture(name,option,function(chart){_this76.OnFinishDrawPicture(chart,data);});};this.ClearCurrnetDrawPicture=function(){if(this.HQChart)this.HQChart.ClearCurrnetDrawPicture();};//画图工具绘制完成
|
|
13273
|
+
this.OnFinishDrawPicture=function(chart,data){data.Span.classList.remove("UMyChart_DrawTool_Span_Selected");data.Span.classList.add("UMyChart_DrawTool_Span");};this.Show=function(x,y){if(!this.DivDialog)return;this.DivDialog.style.visibility='visible';this.DivDialog.style.top=y+"px";this.DivDialog.style.left=x+"px";};this.Close=function(e){if(!this.DivDialog)return;this.DivDialog.style.visibility='hidden';};this.IsShow=function(){if(!this.DivDialog)return false;return this.DivDialog.style.visibility==='visible';};this.OnMouseDownTitle=function(e){var _this77=this;if(!this.DivDialog)return;var dragData={X:e.clientX,Y:e.clientY};dragData.YOffset=e.clientX-this.DivDialog.offsetLeft;dragData.XOffset=e.clientY-this.DivDialog.offsetTop;this.DragTitle=dragData;document.onmousemove=function(e){_this77.DocOnMouseMoveTitle(e);};document.onmouseup=function(e){_this77.DocOnMouseUpTitle(e);};};this.DocOnMouseMoveTitle=function(e){if(!this.DragTitle)return;var left=e.clientX-this.DragTitle.YOffset;var top=e.clientY-this.DragTitle.XOffset;var right=left+this.DivDialog.offsetWidth;var bottom=top+this.DivDialog.offsetHeight;if(right+5>=window.innerWidth)left=window.innerWidth-this.DivDialog.offsetWidth-5;if(bottom+5>=window.innerHeight)top=window.innerHeight-this.DivDialog.offsetHeight-5;this.DivDialog.style.left=left+'px';this.DivDialog.style.top=top+'px';if(e.preventDefault)e.preventDefault();};this.DocOnMouseUpTitle=function(e){this.DragTitle=null;this.onmousemove=null;this.onmouseup=null;};this.ChartInfoLine_FormatLabelText=function(labelInfo){if(!IFrameSplitOperator.IsNonEmptyArray(labelInfo.AryValue))return;if(!labelInfo.Data||!IFrameSplitOperator.IsNonEmptyArray(labelInfo.Data.Data))return;for(var i=0;i<labelInfo.AryValue.length;++i){var item=labelInfo.AryValue[i];if(!IFrameSplitOperator.IsNumber(item.XValue)||item.XValue<0)return;}var startIndex=labelInfo.AryValue[0].XValue;var endIndex=labelInfo.AryValue[1].XValue;var startItem=labelInfo.Data.Data[startIndex];var endItem=labelInfo.Data.Data[endIndex];if(!startItem||!endItem)return;var isMinutePeriod=ChartData.IsMinutePeriod(labelInfo.Data.Period,true);labelInfo.AryText=[];labelInfo.AryText.push({Name:"起始日期: ",Text:IFrameSplitOperator.FormatDateString(startItem.Date),NameColor:"rgb(0,0,0)",TextColor:"rgb(30,10,30)"});if(isMinutePeriod)labelInfo.AryText.push({Name:"起始时间: ",Text:IFrameSplitOperator.FormatTimeString(startItem.Time,"HH:MM"),NameColor:"rgb(0,0,0)",TextColor:"rgb(30,10,30)"});labelInfo.AryText.push({Name:"结束日期: ",Text:IFrameSplitOperator.FormatDateString(endItem.Date),NameColor:"rgb(0,0,0)",TextColor:"rgb(30,10,30)"});if(isMinutePeriod)labelInfo.AryText.push({Name:"结束时间: ",Text:IFrameSplitOperator.FormatTimeString(endItem.Time,"HH:MM"),NameColor:"rgb(0,0,0)",TextColor:"rgb(30,10,30)"});//示例:计算一个斜率数据
|
|
13269
13274
|
var x=labelInfo.AryPoint[1].X-labelInfo.AryPoint[0].X;var y=labelInfo.AryPoint[1].Y-labelInfo.AryPoint[0].Y;var text="--";if(x!=0)text=''+(y/x).toFixed(4);labelInfo.AryText.push({Name:"斜率: ",Text:text,NameColor:"rgb(0,0,0)",TextColor:"rgb(238, 0, 238)"});labelInfo.AryText.push({Name:"其他: ",Text:'......',NameColor:"rgb(0,0,0)",TextColor:"rgb(156, 156, 156)"});};this.ChartDrawMonitorLine_FormatLabelText=function(labelInfo){if(!labelInfo.Data||!IFrameSplitOperator.IsNonEmptyArray(labelInfo.Data.Data))return;if(!IFrameSplitOperator.IsNumber(labelInfo.StartIndex)||labelInfo.StartIndex<0)return;var startItem=labelInfo.Data.Data[labelInfo.StartIndex];var endItem=labelInfo.Data.Data[labelInfo.Data.Data.length-1];labelInfo.YValue=endItem.Close;var isMinutePeriod=ChartData.IsMinutePeriod(labelInfo.Data.Period,true);labelInfo.AryText=[];labelInfo.AryText.push({Name:"起始: ",Text:IFrameSplitOperator.FormatDateString(startItem.Date,"MM-DD"),NameColor:"rgb(0,0,0)",TextColor:"rgb(30,10,30)"});if(isMinutePeriod)labelInfo.AryText.push({Name:"起始: ",Text:IFrameSplitOperator.FormatTimeString(startItem.Time,"HH:MM"),NameColor:"rgb(0,0,0)",TextColor:"rgb(30,10,30)"});labelInfo.AryText.push({Name:"最新: ",Text:IFrameSplitOperator.FormatDateString(endItem.Date,"MM-DD"),NameColor:"rgb(0,0,0)",TextColor:"rgb(30,10,30)"});if(isMinutePeriod)labelInfo.AryText.push({Name:"最新: ",Text:IFrameSplitOperator.FormatTimeString(endItem.Time,"HH:MM"),NameColor:"rgb(0,0,0)",TextColor:"rgb(30,10,30)"});labelInfo.AryText.push({Name:"ɑ: ",Text:"--.--",NameColor:"rgb(0, 0 ,255)",TextColor:"rgb(255, 165, 0)"});labelInfo.AryText.push({Name:"β: ",Text:"--.--",NameColor:"rgb(0 ,0 ,255)",TextColor:"rgb(238 ,121, 66)"});};}/////////////////////////////////////////////////////////////////////////////////////
|
|
13270
13275
|
// 修改画图工具
|
|
13271
13276
|
//
|
|
@@ -13276,26 +13281,26 @@ this.ColorButton=null;this.BGColorButton=null;this.FontColorButton=null;this.Bor
|
|
|
13276
13281
|
this.RandomBGColor=["rgba(210,251,209,0.8)","rgb(217,217,253)","rgb(255,208,204)","rgb(252,249,206)"];//背景颜色
|
|
13277
13282
|
this.RandomFontColor=["rgb(0,0,0)","rgb(255, 0, 0)","rgb(20, 255, 0)","rgb(255, 0, 255)"];//文字颜色
|
|
13278
13283
|
this.RandomBorderColor=["rgb(0,0,0)","rgb(5, 246, 143)","rgb(139, 137, 137)","rgb(255, 20, 147)"];//边框颜色
|
|
13279
|
-
this.AryButton=[{Title:"修改线段颜色",ClassName:'hqchart_drawtool icon-huabi',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_CHANGE_LINE_COLOR_ID}},{Title:"修改字体颜色",ClassName:'hqchart_drawtool icon-zitiyanse',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_CHANGE_FONT_COLOR_ID}},{Title:"修改背景颜色",ClassName:'hqchart_drawtool icon-zitibeijingse',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_CHANGE_BG_COLOR_ID}},{Title:"修改边框颜色",ClassName:'hqchart_drawtool icon-biankuang',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_CHANGE_BORDER_COLOR_ID}},{Title:"删除图形",ClassName:'hqchart_drawtool icon-recycle_bin',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_DELETE_DRAW_CHART_ID}}];this.Inital=function(hqchart){this.HQChart=hqchart;};this.Destroy=function(){this.ChartPicture=null;this.ColorButton=null;if(this.DivDialog){document.body.remove(this.DivDialog);this.DivDialog=null;}};this.Create=function(){var
|
|
13280
|
-
divItem.onmouseover=function(e){
|
|
13284
|
+
this.AryButton=[{Title:"修改线段颜色",ClassName:'hqchart_drawtool icon-huabi',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_CHANGE_LINE_COLOR_ID}},{Title:"修改字体颜色",ClassName:'hqchart_drawtool icon-zitiyanse',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_CHANGE_FONT_COLOR_ID}},{Title:"修改背景颜色",ClassName:'hqchart_drawtool icon-zitibeijingse',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_CHANGE_BG_COLOR_ID}},{Title:"修改边框颜色",ClassName:'hqchart_drawtool icon-biankuang',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_CHANGE_BORDER_COLOR_ID}},{Title:"删除图形",ClassName:'hqchart_drawtool icon-recycle_bin',Type:2,Data:{ID:JS_DRAWTOOL_MENU_ID.CMD_DELETE_DRAW_CHART_ID}}];this.Inital=function(hqchart){this.HQChart=hqchart;};this.Destroy=function(){this.ChartPicture=null;this.ColorButton=null;if(this.DivDialog){document.body.remove(this.DivDialog);this.DivDialog=null;}};this.Create=function(){var _this78=this;var divDom=document.createElement("div");divDom.className='UMyChart_Draw_Modify_Dialog_Div';var drgDiv=document.createElement("div");drgDiv.className="UMyChart_Draw_Modify_Dialog_Drag_Div";drgDiv.onmousedown=function(e){_this78.OnMouseDownTitle(e);};divDom.appendChild(drgDiv);var spanDom=document.createElement("span");spanDom.className="hqchart_drawtool icon-tuodong";spanDom.classList.add("UMyChart_DrawTool_Span");drgDiv.appendChild(spanDom);for(var i=0;i<this.AryButton.length;++i){var item=this.AryButton[i];this.CreateButtonItem(item,divDom);}this.DivDialog=divDom;document.body.appendChild(divDom);};this.CreateButtonItem=function(item,parentDivDom){var _this79=this;var divItem=document.createElement("div");divItem.className="UMyChart_Draw_Modify_Dialog_Button_Div";var spanTooltip=document.createElement("span");spanTooltip.className="UMyChart_Draw_Modify_Tooltip";spanTooltip.innerText=item.Title;divItem.appendChild(spanTooltip);var spanDom=document.createElement("span");spanDom.className=item.ClassName;spanDom.classList.add("UMyChart_DrawTool_Span");divItem.appendChild(spanDom);var data={Div:divItem,Span:spanDom,Parent:parentDivDom,Item:item,Tooltip:spanTooltip};divItem.onmousedown=function(e){_this79.OnClickButton(e,data);};//点击
|
|
13285
|
+
divItem.onmouseover=function(e){_this79.OnHoverButton(e,data);};divItem.onmouseout=function(e){_this79.OnLeaveButton(e,data);};switch(item.Data.ID){case JS_DRAWTOOL_MENU_ID.CMD_CHANGE_LINE_COLOR_ID:this.ColorButton=data;break;case JS_DRAWTOOL_MENU_ID.CMD_CHANGE_BG_COLOR_ID:this.BGColorButton=data;divItem.style.display="none";break;case JS_DRAWTOOL_MENU_ID.CMD_CHANGE_FONT_COLOR_ID:this.FontColorButton=data;divItem.style.display="none";break;case JS_DRAWTOOL_MENU_ID.CMD_CHANGE_BORDER_COLOR_ID:this.BorderColorButton=data;divItem.style.display="none";break;}parentDivDom.appendChild(divItem);};this.OnClickButton=function(e,data){console.log('[JSDialogModifyDraw::OnClickButton] ',data);if(!data.Item||!data.Item.Data)return;var id=data.Item.Data.ID;switch(id){case JS_DRAWTOOL_MENU_ID.CMD_CHANGE_LINE_COLOR_ID:this.ModifyLineColor();break;case JS_DRAWTOOL_MENU_ID.CMD_DELETE_DRAW_CHART_ID:this.DeleteDrawPicture();break;case JS_DRAWTOOL_MENU_ID.CMD_CHANGE_BG_COLOR_ID:this.ModifyBGColor();break;case JS_DRAWTOOL_MENU_ID.CMD_CHANGE_FONT_COLOR_ID:this.ModifyFontColor();break;case JS_DRAWTOOL_MENU_ID.CMD_CHANGE_BORDER_COLOR_ID:this.ModifyBorderColor();break;}};this.OnHoverButton=function(e,data){//var x=e.clientX;
|
|
13281
13286
|
//data.Tooltip.style.left=x+"px";
|
|
13282
13287
|
data.Tooltip.style.display="inline";};this.OnLeaveButton=function(e,data){data.Tooltip.style.display="none";};this.Close=function(e){if(!this.DivDialog)return;this.ChartPicture=null;this.DivDialog.style.visibility='hidden';};this.IsShow=function(){if(!this.DivDialog)return false;return this.DivDialog.style.visibility==='visible';};this.DeleteDrawPicture=function(){if(this.ChartPicture&&this.HQChart){this.HQChart.ClearChartDrawPicture(this.ChartPicture);}this.Close();};this.ShowButton=function(dom,diaplay){if(dom.style.display==diaplay)return;dom.style.display=diaplay;};this.GetRandomColor=function(currentColor,randomLineColor){var colorIndex=0;for(var i=0;i<randomLineColor.length;++i){if(currentColor==randomLineColor[i]){colorIndex=i+1;break;}}colorIndex=colorIndex%randomLineColor.length;var color=randomLineColor[colorIndex];return color;};this.ModifyLineColor=function(){if(!this.ChartPicture||!this.HQChart)return;var color=this.GetRandomColor(this.ChartPicture.LineColor,this.RandomLineColor);this.ChartPicture.LineColor=color;this.ChartPicture.PointColor=color;if(this.ColorButton)this.ColorButton.Span.style['color']=color;if(this.HQChart.ChartDrawStorage)this.HQChart.ChartDrawStorage.SaveDrawData(this.ChartPicture);//保存下
|
|
13283
13288
|
this.HQChart.Draw();};this.ModifyFontColor=function(){if(!this.ChartPicture||!this.HQChart)return;if(this.ChartPicture.ClassName=="ChartDrawNote"){var color=this.GetRandomColor(this.ChartPicture.NoteTextColor,this.RandomFontColor);this.ChartPicture.NoteTextColor=color;}else{var color=this.GetRandomColor(this.ChartPicture.TextColor,this.RandomFontColor);this.ChartPicture.TextColor=color;}if(this.FontColorButton)this.FontColorButton.Span.style['color']=color;if(this.HQChart.ChartDrawStorage)this.HQChart.ChartDrawStorage.SaveDrawData(this.ChartPicture);//保存下
|
|
13284
13289
|
this.HQChart.Draw();};this.ModifyBGColor=function(){if(!this.ChartPicture||!this.HQChart)return;if(this.ChartPicture.ClassName=="ChartDrawNote"){var color=this.GetRandomColor(this.ChartPicture.NoteBGColor,this.RandomBGColor);this.ChartPicture.NoteBGColor=color;}else{var color=this.GetRandomColor(this.ChartPicture.BGColor,this.RandomBGColor);this.ChartPicture.BGColor=color;}if(this.BGColorButton)this.BGColorButton.Span.style['color']=color;if(this.HQChart.ChartDrawStorage)this.HQChart.ChartDrawStorage.SaveDrawData(this.ChartPicture);//保存下
|
|
13285
13290
|
this.HQChart.Draw();};this.ModifyBorderColor=function(){if(!this.ChartPicture||!this.HQChart)return;if(this.ChartPicture.ClassName=="ChartDrawNote"){var color=this.GetRandomColor(this.ChartPicture.NoteBorderColor,this.RandomBorderColor);this.ChartPicture.NoteBorderColor=color;}else{var color=this.GetRandomColor(this.ChartPicture.BorderColor,this.RandomBorderColor);this.ChartPicture.BorderColor=color;}if(this.BorderColorButton)this.BorderColorButton.Span.style['color']=color;if(this.HQChart.ChartDrawStorage)this.HQChart.ChartDrawStorage.SaveDrawData(this.ChartPicture);//保存下
|
|
13286
|
-
this.HQChart.Draw();};this.Show=function(x,y){if(!this.DivDialog)this.Create();this.DivDialog.style.visibility='visible';this.DivDialog.style.top=y+"px";this.DivDialog.style.left=x+"px";};this.SetChartPicture=function(chart){this.ChartPicture=chart;var bShowLineColor=true,bShowBGColor=false,bShowFontColor=false,bShowBorderColor=false;var bgColor=null,fontColor=null,borderColor=null;var ARRAY_TEXT_CHART=['ChartDrawPriceLabel',"ChartDrawAnchoredText","ChartDrawPriceNote"];if(ARRAY_TEXT_CHART.includes(chart.ClassName)){bShowBGColor=true;bShowFontColor=true;bShowBorderColor=true;bgColor=chart.BGColor;fontColor=chart.TextColor;borderColor=chart.BorderColor;}else if(chart.ClassName=="ChartDrawNote"){bShowBGColor=true;bShowFontColor=true;bShowBorderColor=true;bgColor=chart.NoteBGColor;fontColor=chart.NoteTextColor;borderColor=chart.NoteBorderColor;}if(this.ColorButton){var item=this.ColorButton;this.ShowButton(item.Div,bShowLineColor?"inline":"none");if(bShowLineColor){item.Span.style['color']=chart.LineColor;}}if(this.BGColorButton){var item=this.BGColorButton;this.ShowButton(item.Div,bShowBGColor?"inline":"none");if(bShowBGColor){item.Span.style['color']=bgColor;}}if(this.FontColorButton){var item=this.FontColorButton;this.ShowButton(item.Div,bShowFontColor?"inline":"none");if(bShowFontColor){item.Span.style['color']=fontColor;}}if(this.BorderColorButton){var item=this.BorderColorButton;this.ShowButton(item.Div,bShowBorderColor?"inline":"none");if(bShowBorderColor){item.Span.style['color']=borderColor;}}};this.OnMouseDownTitle=function(e){var
|
|
13291
|
+
this.HQChart.Draw();};this.Show=function(x,y){if(!this.DivDialog)this.Create();this.DivDialog.style.visibility='visible';this.DivDialog.style.top=y+"px";this.DivDialog.style.left=x+"px";};this.SetChartPicture=function(chart){this.ChartPicture=chart;var bShowLineColor=true,bShowBGColor=false,bShowFontColor=false,bShowBorderColor=false;var bgColor=null,fontColor=null,borderColor=null;var ARRAY_TEXT_CHART=['ChartDrawPriceLabel',"ChartDrawAnchoredText","ChartDrawPriceNote"];if(ARRAY_TEXT_CHART.includes(chart.ClassName)){bShowBGColor=true;bShowFontColor=true;bShowBorderColor=true;bgColor=chart.BGColor;fontColor=chart.TextColor;borderColor=chart.BorderColor;}else if(chart.ClassName=="ChartDrawNote"){bShowBGColor=true;bShowFontColor=true;bShowBorderColor=true;bgColor=chart.NoteBGColor;fontColor=chart.NoteTextColor;borderColor=chart.NoteBorderColor;}if(this.ColorButton){var item=this.ColorButton;this.ShowButton(item.Div,bShowLineColor?"inline":"none");if(bShowLineColor){item.Span.style['color']=chart.LineColor;}}if(this.BGColorButton){var item=this.BGColorButton;this.ShowButton(item.Div,bShowBGColor?"inline":"none");if(bShowBGColor){item.Span.style['color']=bgColor;}}if(this.FontColorButton){var item=this.FontColorButton;this.ShowButton(item.Div,bShowFontColor?"inline":"none");if(bShowFontColor){item.Span.style['color']=fontColor;}}if(this.BorderColorButton){var item=this.BorderColorButton;this.ShowButton(item.Div,bShowBorderColor?"inline":"none");if(bShowBorderColor){item.Span.style['color']=borderColor;}}};this.OnMouseDownTitle=function(e){var _this80=this;if(!this.DivDialog)return;var dragData={X:e.clientX,Y:e.clientY};dragData.YOffset=e.clientX-this.DivDialog.offsetLeft;dragData.XOffset=e.clientY-this.DivDialog.offsetTop;this.DragTitle=dragData;document.onmousemove=function(e){_this80.DocOnMouseMoveTitle(e);};document.onmouseup=function(e){_this80.DocOnMouseUpTitle(e);};};this.DocOnMouseMoveTitle=function(e){if(!this.DragTitle)return;var left=e.clientX-this.DragTitle.YOffset;var top=e.clientY-this.DragTitle.XOffset;var right=left+this.DivDialog.offsetWidth;var bottom=top+this.DivDialog.offsetHeight;if(right+5>=window.innerWidth)left=window.innerWidth-this.DivDialog.offsetWidth-5;if(bottom+5>=window.innerHeight)top=window.innerHeight-this.DivDialog.offsetHeight-5;this.DivDialog.style.left=left+'px';this.DivDialog.style.top=top+'px';if(e.preventDefault)e.preventDefault();if(e.stopPropagation)e.stopPropagation();};this.DocOnMouseUpTitle=function(e){this.DragTitle=null;this.onmousemove=null;this.onmouseup=null;};}///////////////////////////////////////////////////////////////////////////////////
|
|
13287
13292
|
// 工作线程计算指标示例
|
|
13288
13293
|
//
|
|
13289
13294
|
//
|
|
13290
13295
|
//////////////////////////////////////////////////////////////////////////////////
|
|
13291
13296
|
function HQChartScriptWorker(){this.Status=0;//0=空闲 1=运行
|
|
13292
|
-
this.Create=function(){var
|
|
13293
|
-
};this.ExecuteScript=function(indexData,message){var
|
|
13297
|
+
this.Create=function(){var _this81=this;addEventListener('message',function(obj){_this81.OnRecvMessage(obj);});};this.NetworkFilter=function(data,callback,indexInfo){JSConsole.Complier.Log('[HQChartScriptWorker::NetworkFilter] ['+data.Name+']['+data.Explain+'] data=',data);//数据下载
|
|
13298
|
+
};this.ExecuteScript=function(indexData,message){var _this82=this;var scriptObj={};if(indexData.Script){scriptObj.Name=indexData.Name;scriptObj.ID=indexData.Index;scriptObj.Script=indexData.Script;}else{if(!indexData.Index)return false;var scriptData=new JSIndexScript();var finder=scriptData.Get(indexData.Index);if(!finder)return false;scriptObj.ID=indexData.Index;scriptObj.Name=finder.Name;scriptObj.Script=finder.Script;scriptObj.Args=finder.Args;}if(indexData.Args)scriptObj.Args=indexData.Args;if(IFrameSplitOperator.IsBool(message.IsApiPeriod))scriptObj.IsApiPeriod=message.IsApiPeriod;var indexInfo={Name:scriptObj.Name,ID:scriptObj.ID,Script:scriptObj.Script,Args:scriptObj.Args,Guid:message.Guid};scriptObj.ErrorCallback=function(error){_this82.OnExecuteError(error,indexInfo,message);};scriptObj.FinishCallback=function(data,jsExectute){_this82.OnExecuteFinish(data,indexInfo,jsExectute,message);};scriptObj.NetworkFilter=function(data,callback){_this82.NetworkFilter(data,callback,indexInfo,message);};JSConsole.Complier.Log('[HQChartScriptWorker::ExecuteScript] scriptObj=',scriptObj);var indexConsole=new ScriptIndexConsole(scriptObj);var hisData=null;if(message&&message.Data){hisData=new ChartData();hisData.Data=message.Data;hisData.Right=message.Right;hisData.Period=message.Period;hisData.DataType=message.DataType;//0=日线 1=分钟
|
|
13294
13299
|
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.Status=1;//执行状态
|
|
13295
13300
|
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);};}/********************************************************************************
|
|
13296
13301
|
* 版本信息输出
|
|
13297
13302
|
*
|
|
13298
|
-
*/var HQCHART_VERSION="1.1.
|
|
13303
|
+
*/var HQCHART_VERSION="1.1.13536";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();//把给外界调用的方法暴露出来
|
|
13299
13304
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
13300
13305
|
// BaseIndex:BaseIndex,
|
|
13301
13306
|
// ChartLine:ChartLine,
|