vue项目中使用ElementUI-Table嵌套Echarts柱状图

项目场景:

项目场景:在VUE项目的一个页面中,需要使用Echarts中的柱状图进行数据可视化处理。
要求:每个柱状图的粗细要相等,颜色要自动使用不同颜色,特殊数据要固定黑色。
难点:页面中需要有多个柱状图,类似于表格里嵌套柱状图。
解决办法,使用v-for循环生成柱状图容器,使用v-bind动态绑定柱状图容器id值。


解决思路

按照Echarts的官方文档在项目中引入,使用el-table,通过v-for生成多个柱状图,放在table的列中,每个柱状图的div容器使用v-bind动态绑定id值。

html代码:

<el-table :data="projectList" id="proFunction" style="width: 100%;" max-height="670">
	<el-table-column v-for="(value,index) in functionList" :key="index" align='center' min-width="230">
        <template slot-scope="scope">
          <!-- 柱状图放置区域 -->
          <div :id="scope.row.projectName+'_'+value.name" style="width:100%;height:200px;border:1px solid skyblue;margin: 0 auto;"></div>
        </template>
      </el-table-column>
</el-table>  

js代码:

import echarts from 'echarts'
methods: {
//柱状图数据处理和渲染
zhu () {
      let that = this
      let option = {}
      console.time('柱状图绘制')
      console.log(this.projectList)
      console.log(this.functionList)
      //数据处理部分
      //柱状图渲染部分
      option = {
              xAxis: {
                type: 'category',
                data: deptName,//横坐标名称集合
              },
              yAxis: {
                type: 'value'
              },
              series: [
                {
                  data: deptUserNum,//纵坐标数据集
                  type: 'bar',
                  barWidth: 15,//柱子宽度
                  itemStyle: {
                    normal: {
                      label: {
                        show: true,		//开启数值显示
                        position: 'top',	//在上方显示
                        textStyle: {	    //数值样式
                          color: 'black',
                          fontSize: 16
                        }
                      },
                      color: function (params) {
                        // 定义颜色集合
                        var colorList = [
                          '#C6E579', '#B5C334', '#FCCE10', '#E87C25', '#27727B',
                          '#FE8463', '#9BCA63', '#FAD860', '#F3A43B', '#60C0DD',
                          '#D7504B', '#C1232B', '#F4E001', '#F0805A', '#26C0C0'
                        ];
                        //根据数据量返回颜色列表
                        if (params) {
                          if ($.inArray(params.name, that.Bgs) == -1) {
                            return colorList[params.dataIndex]
                          } else {
                          //特殊情况,如果横坐标数据名在特殊集合中,统一使用黑色渲染
                            return 'black'
                          }
                        }
                      },
                    }
                  },
                  markLine: { // 设置平均线
                    data: [
                      {
                        type: "average",
                        name: "我是平均值",
                        color: "#baf"
                      }
                    ]
                  },
                }
              ]
            };
            //渲染
            myChart.setOption(option)
      }

效果展示:部分数据涉及公司保密,已打码
在这里插入图片描述

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
vue-datav-echarts-elementui是一个基于Vue.js和ElementUI的数据可视化组件库。它结合了Vue框架、ElementUI组件和ECharts表库,为开发者提供了一套方便快捷的数据可视化解决方案。 首先,通过vue-datav-echarts-elementui,我们可以方便地在Vue.js项目使用ElementUI组件。ElementUI是一个非常流行的Vue组件库,提供了许多易于使用和美观的UI组件,如按钮、表格、表单等。通过集成ElementUI,我们可以快速构建出具有一致风格的数据可视化界面。 其次,vue-datav-echarts-elementui还集成了ECharts表库。ECharts是一款功能强大、灵活且易于使用的数据可视化库,支持多种常见的表类型,如折线、柱、饼等。通过将EChartsVue.js集成,我们可以轻松生成复杂的数据可视化表,并自定义其外观和交互行为。 除了集成Vue框架、ElementUI和ECharts表库,vue-datav-echarts-elementui还提供了许多便捷的功能和工具,帮助开发者更高效地进行数据可视化开发。它提供了丰富的配置选项和API接口,使得定制化开发变得简单易懂。此外,它还支持响应式设计,使得表在不同屏幕尺寸下自适应调整。 总之,vue-datav-echarts-elementui是一个功能强大、易于使用的数据可视化组件库,通过集成Vue.js、ElementUI和ECharts,为开发者提供了一套全面的数据可视化解决方案。无论是简单的数据展示,还是复杂的数据分析,都可以借助这个组件库轻松实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值