Vue+Echarts做图表展示

1.Echarts安装

终端运行安装命令:

npm install echarts -s

在main.js做全局引用:

//引入echarts
import * as echarts from 'echarts'
//vue全局注入echarts
Vue.prototype.$echarts = echarts;

2.页面使用Echarts画柱状图和饼图

效果:

代码展示:

html 复制代码
        <!-- 统计信息展示 -->
        <div style="display: flex; justify-content: space-around;margin-top: 36px;">
            <!-- 工作量统计 -->
             <div class="echart-work" ref="echartWork"></div>
            <!-- 库存统计 -->
            <div class="echart-work" ref="echartRepertory"></div>
        </div>
    mounted() {
        // 挂载完成dom后进行初始化
        this.showEcarts();
    },
    methods: {

        showEcarts() {
            //工作量统计
            const echartWork = this.$refs.echartWork
            const mycartEchartWork = this.$echarts.init(echartWork)
            //库存统计
            const echartRepertory = this.$refs.echartRepertory
            const mycartEchartRepertory = this.$echarts.init(echartRepertory)
            //绘制工作量统计图表
                  const optionEchartWork = {
                        title : {
                            text: '工作量统计',
                            subtext: '总计',
                            left: '2%',
                            top: '2%',
                        },
                        tooltip : {
                            trigger: 'axis'
                        },
                        legend: {
                            data:['']
                        },
                        toolbox: {
                            show : true,
                            feature : {
                                mark : {show: true},
                                dataView : {show: true, readOnly: false},
                                magicType: {show: true, type: ['line', 'bar']},
                                restore : {show: true},
                                saveAsImage : {show: true}
                            }
                        },
                        calculable : true,
                        grid: [
                                    {
                                        top: 60,
                                        width: '90%',
                                        bottom: '10%',
                                        left: 10,
                                        containLabel: true
                                    },
                                ],
                        xAxis : [
                            {
                                type : 'value',
                                boundaryGap : [0, 0.01]
                            }
                        ],
                        yAxis : [
                            {
                                type : 'category',
                                data : ['管理员','若依','Njcdv','曹日新','了不起的菜包','测试']
                            }
                        ],
                        series : [
                            {
                                name:'工作量',
                                type:'bar',
                                itemStyle: {
                                    color: 'rgb(30,144,255)'
                                },
                                data:[85, 0, 0, 143, 0, 20]
                            },
                        ]
                    };
                    //绘制库存统计图表
                    const optionEchartRepertory = {
                        title : {
                            text: '库存统计',
                            subtext: '总计114',
                            x:'center',
                            top: '2%',
                        },
                        tooltip : {
                            trigger: 'item',
                            formatter: "{a} <br/>{b} : {c} ({d}%)"
                        },
                        legend: {
                            orient : 'vertical',
                            x : 'left',
                            data:['打点下载','素材','专题','其他','文档','音频']
                        },
                        toolbox: {
                            show : true,
                            feature : {
                                mark : {show: true},
                                dataView : {show: true, readOnly: false},
                                magicType : {
                                    show: true, 
                                    type: ['pie', 'funnel',],
                                    option: {
                                        funnel: {
                                            x: '25%',
                                            width: '50%',
                                            funnelAlign: 'left',
                                            max: 1548
                                        }
                                    }
                                },
                                // restore : {show: true},
                                saveAsImage : {show: true}
                            }
                        },
                        // calculable : true,
                        series : [
                            {
                                name:'库存统计',
                                type:'pie',
                                radius : '55%',
                                center: ['50%', '60%'],
                                itemStyle: {
                                            normal: {
                                                color: function (colors) {
                                                    var colorList = ['#fc8251', '#5470c6', '#91cd77', '#ef6567', '#f9c956', '#75bedc'];
                                                    return colorList[colors.dataIndex];
                                                    }
                                                }
                                            },
                                data:[
                                    {value:335, name:'打点下载'},
                                    {value:310, name:'素材'},
                                    {value:234, name:'专题'},
                                    {value:1548, name:'其他'},
                                    {value:135, name:'文档'},
                                    {value:548, name:'音频'},
                                
                                ]
                            }
                        ]
                    };
                    // 渲染图表
                    mycartEchartWork.setOption(optionEchartWork)
                    mycartEchartRepertory.setOption(optionEchartRepertory)
    }
    
相关推荐
masa0106 分钟前
JavaScript--JavaScript基础
开发语言·javascript
Passion不晚2 小时前
Vue vs React vs Angular 的对比和选择
vue.js·react.js·前端框架·angular.js
她似晚风般温柔7897 小时前
Uniapp + Vue3 + Vite +Uview + Pinia 分商家实现购物车功能(最新附源码保姆级)
开发语言·javascript·uni-app
Jiaberrr8 小时前
前端实战:使用JS和Canvas实现运算图形验证码(uniapp、微信小程序同样可用)
前端·javascript·vue.js·微信小程序·uni-app
everyStudy8 小时前
JS中判断字符串中是否包含指定字符
开发语言·前端·javascript
Ylucius8 小时前
动态语言? 静态语言? ------区别何在?java,js,c,c++,python分给是静态or动态语言?
java·c语言·javascript·c++·python·学习
LvManBa8 小时前
Vue学习记录之六(组件实战及BEM框架了解)
vue.js·学习·rust
200不是二百8 小时前
Vuex详解
前端·javascript·vue.js
LvManBa9 小时前
Vue学习记录之三(ref全家桶)
javascript·vue.js·学习
深情废杨杨9 小时前
前端vue-父传子
前端·javascript·vue.js