layuiadmin Echarts 动态删除series里面的元素

提问 已结 6 493
layerUI小白
layerUI小白 2020-5-21
悬赏:100飞吻
版本:layuiAdmin 浏览器:


我想实现的功能是 其中某个单选框取消选中了 柱形图里面也少一个 比如说我把“找贷款取消选中了” 找贷款对应的柱形图随之删除,开始我是想删除series数组中找贷款对应的元素 并删除图例legend 但是只有上面的图例删除了 柱形图还在 后面实验发现 初始化的时候定义了 series数组的大小后 后面只能增加 不能减少 有没有大佬有方法 百度了好久没结果

贴一下代码:
//初始化echarts,里面的数据没有添加,通过ajax动态添加的,应该不影响我这个提问
var echnormline = [],
normline = [{
color: ['#4097E7', '#1ABC9C', '#FE6734'],
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
legend: {
data: []
},
toolbox: {
show: true,
orient: 'vertical',
left: 'right',
top: 'center',
feature: {
mark: {show: true},
dataView: {show: true, readOnly: false},
magicType: {show: true, type: ['line', 'bar', 'stack', 'tiled']},
restore: {show: true},
saveAsImage: {show: true}
}
},
//定义图表位置
grid: {
top: '12%',
left: '1.5%',
right: '5%',
bottom: '10%',
containLabel: true
},
xAxis: [
{
name: '时间',
type: 'category',
axisTick: {show: false},
data: []
}
],
yAxis: [
{
name: '产品热度:申请数',
type: 'value'
}
],
series: []
}]
,elemnormline = $('#LAY-index-normcol')
,rendernormline = function(index){
echnormline[index] = echarts.init(elemnormline[index],
layui.echartsTheme);
echnormline[index].setOption(normline[index]);
window.onresize = echnormline[index].resize;
};
//没找到DOM,终止执行
if(!elemnormline[0]) return;
回帖
  • 您好,您可以删除之后重载echarts啊
    0 回复
  • @HiTerry 知道可以这样哈 我是删除series数组中对应的元素之后 在调用rendernormline(0);方法重载表格的 但是不生效
    0 回复
  • @HiTerry 删除后 控制台打印series数组的值 发现元素确实删除了 但是图表还是不生效
    0 回复
  • @HiTerry 可以了[泪] 好像是因为遍历数组时使用了$.each( 的原因 我改成for遍历 就可以了 具体为什么不知道 只是一个卑微的后端开发 多谢回复
    $.each(array, function(i,val){
    if(val === data.elem.title){
    array.splice(i,1);
    }
    });
    0 回复
  • bagelaile
    2020-5-22
    echnormline[index].setOption(normline[index],{
    notMerge: true
    });
    少了这个
    0 回复
  • @bagelaile 多谢啦 真的是这样 我刚才是直接把series数组里面的data赋值为 [ ] 才实现效果,原来是这个参数没加,跪谢
    0 回复