求助:多个ECharts图表引入不显示

我按照这篇文档做了个ECharts热力图:

决策报表引用echarts图表-https://help.fanruan.com/finereport/doc-view-4089.html,现在想在同一个页面显示多个,把原来的控件和SQL都复制了一份改了一下,结果现在只显示一个图,图1先显示就不能显示图2,图2先显示就不能显示图1,那位大佬知道问题出在哪?

//对SQL结果进行两次取值,通过对比两次结果判断查询是否完成:若两次取值结果相等,说明查询没有完成;若相等,说明查询完成

var q1=_g().options.form.getWidgetByName("report0").element.find("td[id^=C3-]").text(); //判断条件一次取值

var p1=""; //定义二次取值

//使用setInterval进程反复执行二次取值和判断

function say1(){

p1=_g().options.form.getWidgetByName("report0").element.find("td[id^=C3-]").text(); //判断条件二次取值

if(p1!==q1) //判断两次取值是否相等

//若不相等,符合条件,执行以下代码,生成热力图;若相等,不符合条件,不执行以下代码,重新取值

{

// 清空标签控件里的内容

$("div[widgetname=LABEL3]").empty();

// 往标签控件里添加div,指定id

$("div[widgetname=LABEL3]").append("<div id='main'></div>");

var COLORS = ['green', 'red'];

//取横纵坐标

var x = _g().options.form.getWidgetByName("report0").element.find("td[id^=E3-]").text();

var x1 = x.split(','); //取横坐标并转为数组

var y = _g().options.form.getWidgetByName("report0").element.find("td[id^=F3-]").text();

var y1 = y.split(','); //取纵坐标并转为数组

let xAxisVal = ''; // 定义X轴变量

let yAxisVal = ''; // 定义Y轴变量

//为热力图取值

var a = _g().options.form.getWidgetByName("report0").element.find("td[id^=A3-]").text();

var a1 = a.split(','); //取X值并转为数组

var b = _g().options.form.getWidgetByName("report0").element.find("td[id^=B3-]").text();

var b1 = b.split(','); //取Y值并转为数组

var c = _g().options.form.getWidgetByName("report0").element.find("td[id^=C3-]").text();

var c1 = c.split(','); //取Z值并转为数组

//将三个一维数组转为一个二维数组

var d = new Array();

for (var i = 0; i < a1.length; i++) {

d.push([a1[i],b1[i],c1[i]]);

}

// 用于使 Echarts 自适应高度和宽度,通过标签控件计算 DOM 容器的高宽

var resizeMapContainer = function() {

main.style.width = $("[widgetname='LABEL3']").width() + 'px';

main.style.height = $("[widgetname='LABEL3']").height() + 'px';

};

var pcb=_g().options.form.getWidgetByName("report0").element.find("td[id^=G3-]").text();

// 初始化容器的高宽

resizeMapContainer();

// 基于准备好的Dom,初始化echarts实例

var myChart = echarts.init(main);

// 指定图表的配置项和数据

var option = {

title: {

text: pcb

},

tooltip: {

position: 'top',

formatter(e) {

return 'X:'+xAxisVal+'  Y:'+yAxisVal+''+e.data[2]; //鼠标悬浮提示当前位置坐标及值

}

},

//设置图表位置、大小

grid: {

height: '500',

width:'1300',

top: '30',

left:'30',

},

xAxis: {

type: 'category',

data: x1, //设置横坐标

splitArea: {

show: true

},

axisPointer: {

show: true,

type: 'none',

trigger: 'item',

//高亮显示当前X坐标

label: {

formatter(e){

xAxisVal = e.value; // 获取x轴的值

return e.value

}

}

}

},

yAxis: {

inverse: true, //翻转Y轴

//position:'right', //Y轴靠右

type: 'category',

data: y1, //设置纵坐标

splitArea: {

show: true

},

axisPointer: {

type: 'none',

show: true,

trigger: 'item',

splitLine: {

show: false

},

//高亮显示当前Y坐标

label: {

formatter(e){

yAxisVal = e.value; // 获取y轴的值

return e.value

}

}

}

},

//设置热力图颜色图例

visualMap: {

type: 'piecewise',

inverse: true,

left: 10,

pieces: [{

value: 0,

color: COLORS[0]

},

{

value: 1,

color: COLORS[1]

},

],

borderColor: '#ccc',

borderWidth: 2,

backgroundColor: '#eee',

dimension: 2,

},

series: [

{

name: 'Punch Card',

type: 'heatmap',

data: d, //设置热力图的值

label: {

show: true, //在图中显示值

fontSize:10, //设置字体大小

},

emphasis: {

itemStyle: {

shadowBlur: 10,

shadowColor: 'rgba(0, 0, 0, 0.5)'

}

}

}

]

};

// 使用刚指定的配置项和数据显示图表。

myChart.setOption(option);

// 监控窗口大小变化

window.addEventListener("resize", function() {

// 重置容器高宽

resizeMapContainer();

myChart.resize();

});

clearInterval(id1); //终止setInterval进程

}

var id1 = setInterval(say1,500); //将函数say赋值给setInterval进程,每500ms执行一次,并为进程设置id

yzm197998 发布于 2021-12-18 10:02 (编辑于 2021-12-19 12:01)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
snrtuemcLv8专家互助
发布于2022-6-11 08:21

尝试使用心得插件把

ECharts图表集成插件-https://help.fanruan.com/finereport/doc-view-4468.html

  • 2关注人数
  • 957浏览人数
  • 最后回答于:2022-6-11 08:21
    请选择关闭问题的原因
    确定 取消
    返回顶部