记v-charts使用踩坑

v-charts官网

实战页面中使用

1 js部分
import VeHistogram from 'v-charts/lib/histogram.common'
Vue.component(VeHistogram.name, VeHistogram)

export default {
    data () {
        this.chartSettings = {
            axisSite: { right: ['学生付费率'] },
            yAxisType: ['', 'percent'],
            showLine: ['学生付费率'],
            stack: { '产品': ['视频产品', '签到产品'] },
            series: [
                {
                    name: '视频产品',
                    type: 'bar',
                    stack: '产品',
                    barMaxWidth: '50' // 横坐标轴的宽度
                },
                {
                    name: '签到产品',
                    type: 'bar',
                    stack: '产品',
                    barMaxWidth: '50' // 横坐标轴的宽度
                }
            ]
        }
        this.chartExtend = {
            grid: {
                left: '0%',
                right: '1%',
                bottom: '40%',
                top: '5%',
                containLabel: true
            },
            tooltip: {
                textStyle: {
                    align: 'left'
                },
                formatter: function (params) {
                    let str = ''
                    let data, marker
                    params.forEach(item => {
                        if (item.seriesName === '学生付费率') {
                            data = item.seriesName + toDecimal2(item.value * 100) + '%'
                            marker = item.marker
                        } else {
                            data = item.seriesName + toThousand(toDecimal2(item.value))
                            marker = item.marker
                        }
                        str = str + marker + data + '</br>'
                    })
                    return str
                }
            },
            color: ['#FBB534', '#7ED321', '#00AAFF '],
            title: {
                left: 50,
                bottom: 40,
                text: '',
                textStyle: {
                    fontSize: 10,
                    color: '#BBBBBD'
                }
            },
            legend: {
                bottom: 130,
                left: 80,
                itemWidth: 12,
                itemHeight: 12,
                selectedMode: false,
                data: [
                    {
                        name: '视频产品',
                        textStyle: {
                            fontSize: 10,
                            color: '#bbbbbd'
                        },
                        icon: 'roundRect'
                    },
                    {
                        name: '签到产品',
                        textStyle: {
                            fontSize: 10,
                            color: '#bbbbbd'
                        },
                        icon: 'roundRect'
                    },
                    {
                        name: '学生付费率',
                        textStyle: {
                            fontSize: 10,
                            color: '#bbbbbd'
                        },
                        icon: 'roundRect'
                    }
                ]
            },
            xAxis: {
                type: 'category',
                axisLine: {
                    show: true,
                    interval: 0,
                    lineStyle: {
                        color: '#eee',
                        width: 1,
                        type: 'solid'
                    }
                },
                axisLabel: {
                    show: true,
                    textStyle: {
                        fontSize: 10,
                        color: '#bbbbbd'
                    }
                }
            },
            yAxis: {
                axisLine: {
                    show: false,
                    lineStyle: {
                        color: '#bbbbbd',
                        type: 'solid'
                    }
                },
                splitLine: {
                    show: true,
                    lineStyle: {
                        color: '#eee',
                        type: 'dashed'
                    }
                },
                splitNumber: 5
            },
            dataZoom: [// 给x轴设置滚动条
                {
                    startValue: 0,
                    endValue: 4,
                    type: 'slider',
                    show: false,
                    zoomLock: true
                },
                {
                    type: 'inside',
                    show: true,
                    zoomLock: true,
                    xAxisIndex: [0],
                    startValue: 0, // 默认为1
                    endValue: 4,
                    preventDefaultMouseMove: false
                }
            ],
            series: {
                barWidth: 20
            }
        }
        return {
            chartData: {
                columns: ['日期', '视频产品', '签到产品', '学生付费率'],
                rows: []
            }
        }
    },
    mounted () {
        this.getData()
    },
    methods: {
        getData() {
            .....
            // 为chartDat.arows数组追加数据
            this.$set(this.chartData.rows, index, object)
        }
    }
}
2 html 部分
<ve-histogram :data="chartData" :settings="chartSettings" :extend="chartExtend"></ve-histogram>
运行之后报错

报错内容: ERROR Error: Component series.line not exists. Load it first.

报错原因

未引入主模块

解决办法

在main.js引入主模块

import echarts from 'echarts'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值