vue使用echarts有没有点击文字或图实现折叠面板效果的功能?

如图点击基装或后面的红色条块显示下面的两条数据,再次点击隐藏。
如果有请给个方法的链接,如果没有请指导怎么实现,谢谢!(· v ·)Y
图片描述

阅读 3.7k
1 个回答

给chart添加click事件

var toggle = false
myChart.on('click', chartClick)

//点击柱状图
function chartClick(param) {
    if (param.name == '总费用' && !toggle) {
        option.series[1]['data'] = [arr[0]] //只显示第一条数据
        toggle = !toggle
    } else if (param.name == '总费用' && toggle) {
        option.series[1]['data'] = arr //再次点击显示所有
         toggle = !toggle
    }
    myChart.setOption(option)
}

完整示例

var arr = [2900, 1200, 300, 200, 900, 300];
option = {
    title: {
        text: '深圳月最低生活费组成(单位:元)',
        subtext: 'From ExcelHome',
        sublink: 'http://e.weibo.com/1341556070/AjQH99che'
    },
    tooltip : {
        trigger: 'axis',
        axisPointer : {            // 坐标轴指示器,坐标轴触发有效
            type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
        },
        formatter: function (params) {
            var tar = params[1];
            return tar.name + '<br/>' + tar.seriesName + ' : ' + tar.value;
        }
    },
    grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
    },
    xAxis: {
        type : 'category',
        splitLine: {show:false},
        data : ['总费用','房租','水电费','交通费','伙食费','日用品数']
    },
    yAxis: {
        type : 'value'
    },
    series: [
        {
            name: '辅助',
            type: 'bar',
            stack:  '总量',
            itemStyle: {
                normal: {
                    barBorderColor: 'rgba(0,0,0,0)',
                    color: 'rgba(0,0,0,0)'
                },
                emphasis: {
                    barBorderColor: 'rgba(0,0,0,0)',
                    color: 'rgba(0,0,0,0)'
                }
            },
            data: [0, 1700, 1400, 1200, 300, 0]
        },
        {
            name: '生活费',
            type: 'bar',
            stack: '总量',
            label: {
                normal: {
                    show: true,
                    position: 'inside'
                }
            },
            data: arr
        }
    ]
};
myChart.setOption(option)


var toggle = false
myChart.on('click', chartClick)

//点击柱状图
function chartClick(param) {
    if (param.name == '总费用' && !toggle) {
        option.series[1]['data'] = [arr[0]] //只显示第一条数据
        toggle = !toggle
    } else if (param.name == '总费用' && toggle) {
        option.series[1]['data'] = arr //再次点击显示所有
         toggle = !toggle
    }
    myChart.setOption(option)
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题