• vue图表组件使用,组件文档echarts


    
    

    vue图表组件使用,组件文档echarts

    http://echarts.baidu.com/echarts2/doc/example.html
    
    vue组件手动封装barChart.vue
    <template>
        <div :class="className" :id="id" :style="{height:height,width:width}"></div>
    </template>
    
    <script>
        import echarts from 'echarts';
        require('echarts/theme/macarons')
        export default {
            props: {
                className: {
                    type: String,
                    default: 'chart'
                },
                id: {
                    type: String,
                    default: 'chart'
                },
                width: {
                    type: String,
                    default: '200px'
                },
                height: {
                    type: String,
                    default: '200px'
                }
            },
            data() {
                return {
                    chart: null
                };
            },
            mounted() {
                /*this.initChart();*/
                this.chart = null;
            },
            methods: {
                initChart(monthdata, seriesVoList, yeardata) {
                    this.chart = echarts.init(document.getElementById(this.id));
                    this.chart.setOption( {
        title: {
            text: '2010-2013年中国城镇居民家庭人均消费构成(元)',
            subtext: '数据来自国家统计局',
            sublink: 'http://data.stats.gov.cn/search/keywordlist2?keyword=%E5%9F%8E%E9%95%87%E5%B1%85%E6%B0%91%E6%B6%88%E8%B4%B9'
        },
        tooltip: {
            trigger: 'axis',
            backgroundColor: 'rgba(255,255,255,0.7)',
            axisPointer: {
                type: 'shadow'
            },
           
        },
        legend: {
            x: 'right',
            data:['2010','2011','2012','2013']
        },
        toolbox: {
            show: true,
            orient: 'vertical',
            y: 'center',
            feature: {
                mark: {show: true},
                dataView: {show: true, readOnly: false},
                restore: {show: true},
                saveAsImage: {show: true}
            }
        },
        calculable: true,
        grid: {
            y: 80,
            y2: 40,
            x2: 40
        },
        xAxis: [
            {
                type: 'category',
                data: ['食品', '衣着', '居住', '家庭设备及用品', '医疗保健', '交通和通信', '文教娱乐服务', '其他']
            }
        ],
        yAxis: [
            {
                type: 'value'
            }
        ],
        series: [
            {
                name: '2010',
                type: 'bar',
                data: [4804.7,1444.3,1332.1,908,871.8,1983.7,1627.6,499.2]
            },
            {
                name: '2011',
                type: 'bar',
                data: [5506.3,1674.7,1405,1023.2,969,2149.7,1851.7,581.3]
            },
            {
                name: '2012',
                type: 'bar',
                data: [6040.9,1823.4,1484.3,1116.1,1063.7,2455.5,2033.5,657.1]
            },
            {
                name: '2013',
                type: 'bar',
                data: [6311.9,1902,1745.1,1215.1,1118.3,2736.9,2294,699.4]
            }
        ]})
                }
            }
        }
    </script>
    
    vue页面引用组件,及调用方式:
    this.$refs.onclick.initChart(monthdata,seriesVoList,yeardata);

    <template>
      <div class="components-container" style='height:100vh'>
        
    <div class='chart-container'>
        <chart ref="onclick" height='100%' width='100%'></chart>
    </div>
     </div>
    </template><script> import Chart from 'components/Charts/barChart'; export default { components: { Chart },
    methods: {
    getstoreStatistics() {
        this.dialogauditorFormVisible = true;
        this.statisticsQuery.productId = this.productobj.productId;
        this.statisticsQuery.collectinCode = this.productobj.downSuperiorCode;
        this.statisticsQuery.year = (new Date().toISOString().slice(0,4));
        storeStatistics(this.statisticsQuery).then(response => {
            if (response.data != null && response.data.status == 0) {
                /*console.log(response);*/
                let monthdata = response.data.data.monthdata;
                let seriesVoList = response.data.data.seriesVoList;
                let yeardata = response.data.data.yeardata;
                this.$refs.onclick.initChart(monthdata,seriesVoList,yeardata);
            }
            else {
                this.$message({
                    message: '获取信息失败'
                });
            }
        });
    },
    }
    </script>
    
    <style scoped>
    .chart-container{
      position: relative;
      width: 100%;
      height: 90%;
      padding-bottom: 40px;
    }
    </style>


  • 相关阅读:
    Mina之session
    进程管理
    Mina之polling
    用户和组ID
    Mina之service
    同步化、同步及异步操作
    高级进程管理
    一般文件I/O用法建议
    有一个图像搜索引擎
    图像处理和识别和机器学习源码
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13300652.html
Copyright © 2020-2023  润新知