至少选择一个legendecharts 折线配置项内容和展示

用户不能取消掉所有的legend

配置项如下
      option = {
    title: {
            text: '折线图堆叠'
        },
        tooltip: {
            trigger: 'axis'
        },
        legend: {
            data:['电话营销','邮件营销','联盟广告'],
            selected: {
                '电话营销': false,
                '邮件营销': true,
                '联盟广告': true
            }
        },
        grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            containLabel: true
        },
        toolbox: {
            feature: {
                saveAsImage: {}
            }
        },
        xAxis: {
            type: 'category',
            boundaryGap: false,
            data: ['周一','周二','周三','周四','周五','周六','周日']
        },
        yAxis: {
            type: 'value'
        },
        series: [
            {
                name:'电话营销',
                type:'line',
                stack: '总量',
                data:[90, 12, 78, 99, 35, 321, 34]
            },
            {
                name:'邮件营销',
                type:'line',
                stack: '总量',
                data:[120, 132, 101, 134, 90, 230, 210]
            },
            {
                name:'联盟广告',
                type:'line',
                stack: '总量',
                data:[220, 182, 191, 234, 290, 330, 310]
            }
        ]
};

// 判断是否全部被取消选中
function isAllUnselected(selected){
    var selectedCount = 0;
    for ( var name in selected) {
        if (!selected.hasOwnProperty(name)) {
            continue;
        }

        // 所有 selected Object 里面 true 代表 selected, false 代表 unselected
        if (selected[name] === true) {
            ++selectedCount;
        }
    }
    return selectedCount===0;
}

// 获取全为false前的一个为true的元素
function getLast(selected){
    var selectedCount = 0;
    var trueArray = [];
    for ( var name in selected) {
        if (!selected.hasOwnProperty(name)) {
            continue;
        }
        // 将为true的加入到数组中
        if (selected[name] === true) {
            ++selectedCount;
            trueArray.push(name)
        }
    }
    // 只返回一个值即可
    return trueArray[0];
}
var lastName = '';
myChart.on('legendselectchanged', function (params) {
    var selected = params.selected;
    
    // 更新最后选中的元素
    var newlast = getLast(selected);
    lastName = !newlast? lastName : newlast ;
    
    if(isAllUnselected(selected)){
        alert("至少选中一个legend!");
        var dynamicSelected = {};
        dynamicSelected[lastName] = true;
        //重绘echarts
        myChart.setOption({legend:{
            selected:dynamicSelected
        }});
    }
    });
    
截图如下