forked from p81075629/datagear
看板JS对象的loadChart、loadCharts函数不允许已渲染为图表的HTML元素异步加载图表
This commit is contained in:
parent
1a8a6b92b5
commit
594fa1afc2
|
@ -2892,6 +2892,22 @@
|
|||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 记录警告日志。
|
||||
*
|
||||
* @param exception 警告消息字符串
|
||||
*/
|
||||
chartFactory.logWarn = function(exception)
|
||||
{
|
||||
if(typeof console != "undefined")
|
||||
{
|
||||
if(console.warn)
|
||||
console.warn(exception);
|
||||
else if(console.info)
|
||||
console.info(exception);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 由图表主题构建echarts主题。
|
||||
*
|
||||
|
|
|
@ -1484,7 +1484,7 @@
|
|||
|
||||
/**
|
||||
* 异步加载单个图表,并将其加入此看板。
|
||||
* 如果指定的HTML元素已经被渲染为图表,则已加载的图表不会被加入看板,也不会执行渲染和更新数据操作。
|
||||
* 如果HTML元素已经被渲染为图表,则不加载图表而直接返回false。
|
||||
*
|
||||
* @param element 用于渲染图表的HTML元素、Jquery对象
|
||||
* @param chartWidgetId 选填参数,要加载的图表部件ID,如果不设置,将从元素的"dg-chart-widget"属性取
|
||||
|
@ -1493,14 +1493,17 @@
|
|||
*/
|
||||
dashboardBase.loadChart = function(element, chartWidgetId, ajaxOptions)
|
||||
{
|
||||
element = $(element);
|
||||
|
||||
if(this.isRendered(element))
|
||||
return false;
|
||||
|
||||
if(typeof(chartWidgetId) != "string")
|
||||
{
|
||||
ajaxOptions = chartWidgetId;
|
||||
chartWidgetId = null;
|
||||
}
|
||||
|
||||
element = $(element);
|
||||
|
||||
if(!chartWidgetId)
|
||||
chartWidgetId = chartFactory.elementWidgetId(element);
|
||||
|
||||
|
@ -1537,11 +1540,13 @@
|
|||
};
|
||||
|
||||
this._loadChartJson(chartWidgetId, myAjaxOptions);
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
/**
|
||||
* 异步加载多个图表,并将它们加入此看板。
|
||||
* 如果指定的HTML元素已经被渲染为图表,则已加载的图表不会被加入看板,也不会执行渲染和更新数据操作。
|
||||
* 如果任一HTML元素已经被渲染为图表,则不加载任何图表而直接返回false。
|
||||
*
|
||||
* @param element 用于渲染图表的HTML元素、HTML元素数组、Jquery对象
|
||||
* @param chartWidgetId 选填参数,要加载的图表部件ID、图表部件ID数组,如果不设置,将从元素的"dg-chart-widget"属性取
|
||||
|
@ -1550,14 +1555,30 @@
|
|||
*/
|
||||
dashboardBase.loadCharts = function(element, chartWidgetId, ajaxOptions)
|
||||
{
|
||||
element = $(element);
|
||||
|
||||
var _this = this;
|
||||
|
||||
var hasRendered = false;
|
||||
element.each(function(index)
|
||||
{
|
||||
if(_this.isRendered(this))
|
||||
{
|
||||
hasRendered = true;
|
||||
chartFactory.logWarn("The "+index+"-th element has been rendered");
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
if(hasRendered)
|
||||
return false;
|
||||
|
||||
if(typeof(chartWidgetId) != "string" && !$.isArray(chartWidgetId))
|
||||
{
|
||||
ajaxOptions = chartWidgetId;
|
||||
chartWidgetId = null;
|
||||
}
|
||||
|
||||
element = $(element);
|
||||
|
||||
if(chartWidgetId == null)
|
||||
chartWidgetId = [];
|
||||
else if(typeof(chartWidgetId) == "string")
|
||||
|
@ -1574,8 +1595,6 @@
|
|||
};
|
||||
}
|
||||
|
||||
var _this = this;
|
||||
|
||||
var chartWidgetIds = [];
|
||||
|
||||
element.each(function(index)
|
||||
|
@ -1613,6 +1632,8 @@
|
|||
};
|
||||
|
||||
this._loadChartJson(chartWidgetIds, myAjaxOptions);
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue