From 53aa7db3b7d8122b9a004f82c87f26fc13703ac2 Mon Sep 17 00:00:00 2001 From: jones2000 Date: Fri, 15 Nov 2019 15:23:35 +0800 Subject: [PATCH] ver 7409 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 7408 增加K线标题绘制回调事件 --- umychart_uniapp_h5/umychart.uniapp.h5.js | 27 ++++++++++++++++--- vuehqchart/src/jscommon/umychart.js | 27 ++++++++++++++++--- .../src/jscommon/umychart.vue/umychart.vue.js | 27 ++++++++++++++++--- webhqchart.demo/jscommon/umychart.js | 27 ++++++++++++++++--- webhqchart/umychart.js | 27 ++++++++++++++++--- 5 files changed, 115 insertions(+), 20 deletions(-) diff --git a/umychart_uniapp_h5/umychart.uniapp.h5.js b/umychart_uniapp_h5/umychart.uniapp.h5.js index 9af7531..089aa7f 100644 --- a/umychart_uniapp_h5/umychart.uniapp.h5.js +++ b/umychart_uniapp_h5/umychart.uniapp.h5.js @@ -4564,6 +4564,7 @@ var JSCHART_EVENT_ID= RECV_START_AUTOUPDATE:9, //开始自动更新 RECV_STOP_AUTOUPDATE:10, //停止自动更新 ON_CONTEXT_MENU:11, //右键菜单事件 + ON_TITLE_DRAW:12, //标题信息绘制事件 } var JSCHART_OPERATOR_ID= @@ -5263,13 +5264,14 @@ function JSChartContainer(uielement) } } - + var eventTitleDraw=this.GetEventCallback(JSCHART_EVENT_ID.ON_TITLE_DRAW); for(var i in this.TitlePaint) { var item=this.TitlePaint[i]; if (!item.IsDynamic) continue; item.CursorIndex=this.CursorIndex; + item.OnDrawEvent=eventTitleDraw; item.Draw(); } @@ -19491,6 +19493,7 @@ function DynamicKLineTitlePainting() this.IsShowSettingInfo=true; //是否显示设置信息(周期 复权) this.IsShowDateTime=true; //是否显示日期 this.LanguageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID; + this.OnDrawEvent; this.GetCurrentKLineData=function() //获取当天鼠标位置所在的K线数据 { @@ -19624,8 +19627,11 @@ function DynamicKLineTitlePainting() this.Draw=function() { if (!this.IsShow) return; - if (this.CursorIndex==null || !this.Data) return; - if (this.Data.length<=0) return; + if (this.CursorIndex==null || !this.Data || this.Data.length<=0) + { + this.OnDrawEventCallback(null); + return; + } this.Canvas.font=this.Font; this.SpaceWidth = this.Canvas.measureText('0').width; @@ -19634,14 +19640,26 @@ function DynamicKLineTitlePainting() index=parseInt(index.toFixed(0)); var dataIndex=this.Data.DataOffset+index; if (dataIndex>=this.Data.Data.length) dataIndex=this.Data.Data.length-1; - if (dataIndex<0) return; + if (dataIndex<0) + { + this.OnDrawEventCallback(null); + return; + } var item=this.Data.Data[dataIndex]; + this.OnDrawEventCallback(item); this.Canvas.save(); this.DrawItem(item); this.Canvas.restore(); } + this.OnDrawEventCallback=function(drawData) + { + if (!this.OnDrawEvent || !this.OnDrawEvent.Callback) return; + var data={ Draw: drawData, Name:'DynamicKLineTitlePainting'}; + this.OnDrawEvent.Callback(this.OnDrawEvent,data,this); + } + this.GetColor=function(price,yclse) { if(price>yclse) return this.UpColor; @@ -19681,6 +19699,7 @@ function DynamicMinuteTitlePainting() this.OverlayChartPaint; //叠加画法 this.LanguageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID; this.LastShowData; //保存最后显示的数据 给tooltip用 + this.OnDrawEvent; this.GetCurrentKLineData=function() //获取当天鼠标位置所在的K线数据 { diff --git a/vuehqchart/src/jscommon/umychart.js b/vuehqchart/src/jscommon/umychart.js index e6e87b5..a4901bc 100644 --- a/vuehqchart/src/jscommon/umychart.js +++ b/vuehqchart/src/jscommon/umychart.js @@ -1246,6 +1246,7 @@ var JSCHART_EVENT_ID= RECV_START_AUTOUPDATE:9, //开始自动更新 RECV_STOP_AUTOUPDATE:10, //停止自动更新 ON_CONTEXT_MENU:11, //右键菜单事件 + ON_TITLE_DRAW:12, //标题信息绘制事件 } var JSCHART_OPERATOR_ID= @@ -1945,13 +1946,14 @@ function JSChartContainer(uielement) } } - + var eventTitleDraw=this.GetEventCallback(JSCHART_EVENT_ID.ON_TITLE_DRAW); for(var i in this.TitlePaint) { var item=this.TitlePaint[i]; if (!item.IsDynamic) continue; item.CursorIndex=this.CursorIndex; + item.OnDrawEvent=eventTitleDraw; item.Draw(); } @@ -16173,6 +16175,7 @@ function DynamicKLineTitlePainting() this.IsShowSettingInfo=true; //是否显示设置信息(周期 复权) this.IsShowDateTime=true; //是否显示日期 this.LanguageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID; + this.OnDrawEvent; this.GetCurrentKLineData=function() //获取当天鼠标位置所在的K线数据 { @@ -16306,8 +16309,11 @@ function DynamicKLineTitlePainting() this.Draw=function() { if (!this.IsShow) return; - if (this.CursorIndex==null || !this.Data) return; - if (this.Data.length<=0) return; + if (this.CursorIndex==null || !this.Data || this.Data.length<=0) + { + this.OnDrawEventCallback(null); + return; + } this.Canvas.font=this.Font; this.SpaceWidth = this.Canvas.measureText('0').width; @@ -16316,14 +16322,26 @@ function DynamicKLineTitlePainting() index=parseInt(index.toFixed(0)); var dataIndex=this.Data.DataOffset+index; if (dataIndex>=this.Data.Data.length) dataIndex=this.Data.Data.length-1; - if (dataIndex<0) return; + if (dataIndex<0) + { + this.OnDrawEventCallback(null); + return; + } var item=this.Data.Data[dataIndex]; + this.OnDrawEventCallback(item); this.Canvas.save(); this.DrawItem(item); this.Canvas.restore(); } + this.OnDrawEventCallback=function(drawData) + { + if (!this.OnDrawEvent || !this.OnDrawEvent.Callback) return; + var data={ Draw: drawData, Name:'DynamicKLineTitlePainting'}; + this.OnDrawEvent.Callback(this.OnDrawEvent,data,this); + } + this.GetColor=function(price,yclse) { if(price>yclse) return this.UpColor; @@ -16363,6 +16381,7 @@ function DynamicMinuteTitlePainting() this.OverlayChartPaint; //叠加画法 this.LanguageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID; this.LastShowData; //保存最后显示的数据 给tooltip用 + this.OnDrawEvent; this.GetCurrentKLineData=function() //获取当天鼠标位置所在的K线数据 { diff --git a/vuehqchart/src/jscommon/umychart.vue/umychart.vue.js b/vuehqchart/src/jscommon/umychart.vue/umychart.vue.js index 60b52d0..e17cfa4 100644 --- a/vuehqchart/src/jscommon/umychart.vue/umychart.vue.js +++ b/vuehqchart/src/jscommon/umychart.vue/umychart.vue.js @@ -4605,6 +4605,7 @@ var JSCHART_EVENT_ID= RECV_START_AUTOUPDATE:9, //开始自动更新 RECV_STOP_AUTOUPDATE:10, //停止自动更新 ON_CONTEXT_MENU:11, //右键菜单事件 + ON_TITLE_DRAW:12, //标题信息绘制事件 } var JSCHART_OPERATOR_ID= @@ -5304,13 +5305,14 @@ function JSChartContainer(uielement) } } - + var eventTitleDraw=this.GetEventCallback(JSCHART_EVENT_ID.ON_TITLE_DRAW); for(var i in this.TitlePaint) { var item=this.TitlePaint[i]; if (!item.IsDynamic) continue; item.CursorIndex=this.CursorIndex; + item.OnDrawEvent=eventTitleDraw; item.Draw(); } @@ -19532,6 +19534,7 @@ function DynamicKLineTitlePainting() this.IsShowSettingInfo=true; //是否显示设置信息(周期 复权) this.IsShowDateTime=true; //是否显示日期 this.LanguageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID; + this.OnDrawEvent; this.GetCurrentKLineData=function() //获取当天鼠标位置所在的K线数据 { @@ -19665,8 +19668,11 @@ function DynamicKLineTitlePainting() this.Draw=function() { if (!this.IsShow) return; - if (this.CursorIndex==null || !this.Data) return; - if (this.Data.length<=0) return; + if (this.CursorIndex==null || !this.Data || this.Data.length<=0) + { + this.OnDrawEventCallback(null); + return; + } this.Canvas.font=this.Font; this.SpaceWidth = this.Canvas.measureText('0').width; @@ -19675,14 +19681,26 @@ function DynamicKLineTitlePainting() index=parseInt(index.toFixed(0)); var dataIndex=this.Data.DataOffset+index; if (dataIndex>=this.Data.Data.length) dataIndex=this.Data.Data.length-1; - if (dataIndex<0) return; + if (dataIndex<0) + { + this.OnDrawEventCallback(null); + return; + } var item=this.Data.Data[dataIndex]; + this.OnDrawEventCallback(item); this.Canvas.save(); this.DrawItem(item); this.Canvas.restore(); } + this.OnDrawEventCallback=function(drawData) + { + if (!this.OnDrawEvent || !this.OnDrawEvent.Callback) return; + var data={ Draw: drawData, Name:'DynamicKLineTitlePainting'}; + this.OnDrawEvent.Callback(this.OnDrawEvent,data,this); + } + this.GetColor=function(price,yclse) { if(price>yclse) return this.UpColor; @@ -19722,6 +19740,7 @@ function DynamicMinuteTitlePainting() this.OverlayChartPaint; //叠加画法 this.LanguageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID; this.LastShowData; //保存最后显示的数据 给tooltip用 + this.OnDrawEvent; this.GetCurrentKLineData=function() //获取当天鼠标位置所在的K线数据 { diff --git a/webhqchart.demo/jscommon/umychart.js b/webhqchart.demo/jscommon/umychart.js index e6e87b5..a4901bc 100644 --- a/webhqchart.demo/jscommon/umychart.js +++ b/webhqchart.demo/jscommon/umychart.js @@ -1246,6 +1246,7 @@ var JSCHART_EVENT_ID= RECV_START_AUTOUPDATE:9, //开始自动更新 RECV_STOP_AUTOUPDATE:10, //停止自动更新 ON_CONTEXT_MENU:11, //右键菜单事件 + ON_TITLE_DRAW:12, //标题信息绘制事件 } var JSCHART_OPERATOR_ID= @@ -1945,13 +1946,14 @@ function JSChartContainer(uielement) } } - + var eventTitleDraw=this.GetEventCallback(JSCHART_EVENT_ID.ON_TITLE_DRAW); for(var i in this.TitlePaint) { var item=this.TitlePaint[i]; if (!item.IsDynamic) continue; item.CursorIndex=this.CursorIndex; + item.OnDrawEvent=eventTitleDraw; item.Draw(); } @@ -16173,6 +16175,7 @@ function DynamicKLineTitlePainting() this.IsShowSettingInfo=true; //是否显示设置信息(周期 复权) this.IsShowDateTime=true; //是否显示日期 this.LanguageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID; + this.OnDrawEvent; this.GetCurrentKLineData=function() //获取当天鼠标位置所在的K线数据 { @@ -16306,8 +16309,11 @@ function DynamicKLineTitlePainting() this.Draw=function() { if (!this.IsShow) return; - if (this.CursorIndex==null || !this.Data) return; - if (this.Data.length<=0) return; + if (this.CursorIndex==null || !this.Data || this.Data.length<=0) + { + this.OnDrawEventCallback(null); + return; + } this.Canvas.font=this.Font; this.SpaceWidth = this.Canvas.measureText('0').width; @@ -16316,14 +16322,26 @@ function DynamicKLineTitlePainting() index=parseInt(index.toFixed(0)); var dataIndex=this.Data.DataOffset+index; if (dataIndex>=this.Data.Data.length) dataIndex=this.Data.Data.length-1; - if (dataIndex<0) return; + if (dataIndex<0) + { + this.OnDrawEventCallback(null); + return; + } var item=this.Data.Data[dataIndex]; + this.OnDrawEventCallback(item); this.Canvas.save(); this.DrawItem(item); this.Canvas.restore(); } + this.OnDrawEventCallback=function(drawData) + { + if (!this.OnDrawEvent || !this.OnDrawEvent.Callback) return; + var data={ Draw: drawData, Name:'DynamicKLineTitlePainting'}; + this.OnDrawEvent.Callback(this.OnDrawEvent,data,this); + } + this.GetColor=function(price,yclse) { if(price>yclse) return this.UpColor; @@ -16363,6 +16381,7 @@ function DynamicMinuteTitlePainting() this.OverlayChartPaint; //叠加画法 this.LanguageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID; this.LastShowData; //保存最后显示的数据 给tooltip用 + this.OnDrawEvent; this.GetCurrentKLineData=function() //获取当天鼠标位置所在的K线数据 { diff --git a/webhqchart/umychart.js b/webhqchart/umychart.js index e6e87b5..a4901bc 100644 --- a/webhqchart/umychart.js +++ b/webhqchart/umychart.js @@ -1246,6 +1246,7 @@ var JSCHART_EVENT_ID= RECV_START_AUTOUPDATE:9, //开始自动更新 RECV_STOP_AUTOUPDATE:10, //停止自动更新 ON_CONTEXT_MENU:11, //右键菜单事件 + ON_TITLE_DRAW:12, //标题信息绘制事件 } var JSCHART_OPERATOR_ID= @@ -1945,13 +1946,14 @@ function JSChartContainer(uielement) } } - + var eventTitleDraw=this.GetEventCallback(JSCHART_EVENT_ID.ON_TITLE_DRAW); for(var i in this.TitlePaint) { var item=this.TitlePaint[i]; if (!item.IsDynamic) continue; item.CursorIndex=this.CursorIndex; + item.OnDrawEvent=eventTitleDraw; item.Draw(); } @@ -16173,6 +16175,7 @@ function DynamicKLineTitlePainting() this.IsShowSettingInfo=true; //是否显示设置信息(周期 复权) this.IsShowDateTime=true; //是否显示日期 this.LanguageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID; + this.OnDrawEvent; this.GetCurrentKLineData=function() //获取当天鼠标位置所在的K线数据 { @@ -16306,8 +16309,11 @@ function DynamicKLineTitlePainting() this.Draw=function() { if (!this.IsShow) return; - if (this.CursorIndex==null || !this.Data) return; - if (this.Data.length<=0) return; + if (this.CursorIndex==null || !this.Data || this.Data.length<=0) + { + this.OnDrawEventCallback(null); + return; + } this.Canvas.font=this.Font; this.SpaceWidth = this.Canvas.measureText('0').width; @@ -16316,14 +16322,26 @@ function DynamicKLineTitlePainting() index=parseInt(index.toFixed(0)); var dataIndex=this.Data.DataOffset+index; if (dataIndex>=this.Data.Data.length) dataIndex=this.Data.Data.length-1; - if (dataIndex<0) return; + if (dataIndex<0) + { + this.OnDrawEventCallback(null); + return; + } var item=this.Data.Data[dataIndex]; + this.OnDrawEventCallback(item); this.Canvas.save(); this.DrawItem(item); this.Canvas.restore(); } + this.OnDrawEventCallback=function(drawData) + { + if (!this.OnDrawEvent || !this.OnDrawEvent.Callback) return; + var data={ Draw: drawData, Name:'DynamicKLineTitlePainting'}; + this.OnDrawEvent.Callback(this.OnDrawEvent,data,this); + } + this.GetColor=function(price,yclse) { if(price>yclse) return this.UpColor; @@ -16363,6 +16381,7 @@ function DynamicMinuteTitlePainting() this.OverlayChartPaint; //叠加画法 this.LanguageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID; this.LastShowData; //保存最后显示的数据 给tooltip用 + this.OnDrawEvent; this.GetCurrentKLineData=function() //获取当天鼠标位置所在的K线数据 { -- GitLab