uniapp 引入 echarts

1.首先引入echarts.js

可在百度网盘上获取该文件
链接:https://pan.baidu.com/s/1Bv-1OKh3h5by8II3P9vLZA
提取码:8624

2.将echarts.js文件直接放入static文件里

在这里插入图片描述
3.在components里新建echarts.vue

在这里插入图片描述
在echarts.js里写如下代码:

<template>
    <view>
        <view @click="echarts.onClick" :prop="option" :change:prop="echarts.updateEcharts" id="echarts" class="echarts">
        </view>
    </view>
</template>

<script>
    export default {
        data() {
            return {}
        },
        props: ['option'],
        onLoad() {
        },
        methods: {
            onViewClick(options) {
                console.log(options)
            }
        }
    }
</script>

<script module="echarts" lang="renderjs">
    let myChart
    export default {
        mounted() {
            if (typeof window.echarts === 'function') {
                this.initEcharts()
            } else {
                // 动态引入较大类库避免影响页面展示
                const script = document.createElement('script')
                // view 层的页面运行在 www 根目录,其相对路径相对于 www 计算
                script.src = 'static/echarts.js'
                script.onload = this.initEcharts.bind(this)
                document.head.appendChild(script)
            }
        },
        methods: {
            initEcharts() {
                myChart = echarts.init(document.getElementById('echarts'))
                // 观测更新的数据在 view 层可以直接访问到
                myChart.setOption(this.option)
            },
            updateEcharts(newValue, oldValue, ownerInstance, instance) {
                // 监听 service 层数据变更
                myChart.setOption(newValue)
            },
            onClick(event, ownerInstance) {
                // 调用 service 层的方法
                ownerInstance.callMethod('onViewClick', {
                    test: 'test'
                })
            }## 标题
        }
    }
</script>

<style>
    .content {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .echarts {
        margin-top: 100px;
        width: 100%;
        height: 300px;
    }
</style>

4.然后在需要echarts的地方引入就可以了。

可以直接修改他的 option值

<template>
    <view>
        <echarts style="background-color: #ccc;" :option='option'></echarts>
    </view>
</template>

<script>
    import echarts from '@/components/echarts.vue'
    export default {
        name: 'overview',
        data() {
            return {
                option: {
                    type: 'line',
                    xAxis: {
                        type: 'category',
                        data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
                    },
                    yAxis: {
                        type: 'value'
                    },
                    series: [{
                        data: [160, 170, 184, 198, 200, 234, 260, 260, 270, 271, 278, 298],
                        type: 'line'
                    }, {
                        data: [60, 70, 84, 98, 100, 114, 160, 169, 170, 171, 178,230],
                        type: 'line'
                    }],
                    color:['#ff0000', '#0DCE00']
                }
            }
        },
        components: {
            echarts
        },
        mounted() {

        },
        methods: {

        }
    }
</script>

<style scoped lang="scss">
.circle{
    width: 750rpx;
    height: 373rpx;
    background-color: lavender;
}
.data{
    width: 721rpx;
    height: 617rpx;
}
</style>

注意:这是建议的封装,如果一个页面需要加载两个echarts时,option数据需要放置在 《script module=“echarts” lang=“renderjs”》标签中。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐