问题描述:页面数据返回ok,echarts图表不自动更新,依然显示最初的模样
chart.setOption(option, notMerge, lazyUpdate);
官方文档介绍:
官方文档:setOption
解决方法:echarts.setOption(option,true),让option不进行合并,而是让旧的组件会被完全移除,新的组件会根据option创建。
<template>
<div style="display:flex;justify-content: space-evenly">
<div id="myChart" :style="{width: '300px', height: '300px'}"></div>
<div>
<el-table
ref="multipleTable"
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
@selection-change="handleSelectionChange">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column
label="name"
width="120">
<template slot-scope="scope">{{ scope.row.name }}</template>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [
{
name: "邮件营销",
type: "line",
stack: "总量",
data: [120, 132, 101, 134, 90, 230, 210],
emphasis: { focus: "series" }
},
{
name: "联盟广告",
type: "line",
stack: "总量",
data: [220, 182, 191, 234, 290, 330, 310],
emphasis: { focus: "series" }
},
{
name: "视频广告",
type: "line",
stack: "总量",
data: [150, 232, 201, 154, 190, 330, 410],
emphasis: { focus: "series" }
},
{
name: "直接访问",
type: "line",
stack: "总量",
data: [320, 332, 301, 334, 390, 330, 320],
emphasis: { focus: "series" }
},
{
name: "搜索引擎",
type: "line",
stack: "总量",
data: [820, 932, 901, 934, 1290, 1330, 1320],
emphasis: { focus: "series" }
}
],
multipleSelection: [],
myChart: null
};
},
mounted() {
this.init();
},
methods: {
init() {
this.handleSelectionChange(this.tableData);
// 初始化默认全选
this.tableData.forEach(row => {
this.$refs.multipleTable.toggleRowSelection(row, true);
});
},
handleSelectionChange(val) {
this.multipleSelection = val;
this.hua();
},
hua() {
let data = this.multipleSelection;
console.log(data);
// 基于准备好的dom,初始化echarts实例
this.myChart = this.$echarts.init(document.getElementById("myChart"));
// 绘制图表
this.myChart.setOption(
{
title: {
text: "折线图堆叠"
},
tooltip: {
trigger: "axis"
},
grid: {
left: "3%",
right: "4%",
bottom: "3%",
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis: {
type: "category",
boundaryGap: false,
data: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
},
yAxis: {
type: "value"
},
series: this.multipleSelection
},
true
);
}
}
};
</script>
实现的效果:通过点击表格动态展示echarts数据。
注意:toggleRowSelection为默认elementUI表格全选方法