Skip to content
On this page
你当前查看的文档是tmui3.2.0(已不再支持NVUE)
[tmui3.1.x nvue点我] [tmui4.x uniappx原生开发代替nvue]

展示组件

百度图表 TmF2

可以通过onInt或者ref函数getChart取得ECharts对象自行处理和设置数据,这个组件使用会超过530kb+大小,请小心你的包大小限制,超过大小哦. 使用时请注意找到图表目录:node_modules/echarts/lib/core/echarts.js, 把原来的: defaultRenderer = root.ECHARTS__DEFAULT__RENDERER || defaultRenderer; defaultCoarsePointer = retrieve2(root.__ECHARTS__DEFAULT__COARSE_POINTER, defaultCoarsePointer); var devUseDirtyRect = root.ECHARTS__DEFAULT__USE_DIRTY_RECT; 改成如下: defaultRenderer = root?.ECHARTS__DEFAULT__RENDERER ?? defaultRenderer; defaultCoarsePointer = retrieve2(root?.__ECHARTS__DEFAULT__COARSE_POINTER, defaultCoarsePointer); var devUseDirtyRect = root?.ECHARTS__DEFAULT__USE_DIRTY_RECT??null;

🌶️ 示例

查看模拟效果
示例模板
vue
<template>
    <view>
        <tm-sheet>
            <tm-text font-size="36" class=" text-weight-b mb-16 d-block">百度图表 TmEchart</tm-text>
            <tm-text color="#999999">
                可以通过onInit或者getChart获取Chart对象来设置更新数据图表。点击数据可以响应事件。
            </tm-text>
        </tm-sheet>

        <tm-sheet>
            <tm-echart @click="click" @onInit="onInit"></tm-echart>
        </tm-sheet>

        <tm-sheet>
            <tm-text font-size="36" class=" text-weight-b mb-16 d-block">可以通过ref来初始数据</tm-text>

            <tm-button block @click="setOption">手动赋值</tm-button>
            <tm-echart ref="echart"></tm-echart>
        </tm-sheet>

    </view>
</template>
<script setup lang="ts">
import TmEchart from '@/uni_modules/tm-ui/components/tm-echart/tm-echart.vue';
import { ECharts } from 'echarts';
import { ref } from 'vue';
const echart = ref<InstanceType<typeof TmEchart> | null>(null)
const onInit = (chart: ECharts) => {
    
    chart.setOption({
        xAxis: {
            type: 'category',
            boundaryGap: false,
            data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
        },
        yAxis: {
            type: 'value'
        },
        series: [
            {
                data: [820, 932, 901, 934, 1290, 1330, 1320],
                type: 'line',
                areaStyle: {}
            }
        ]
    })
}
const click = (evt: any) => {
    console.log(evt)
    uni.showToast({ title: evt.data + '', icon: 'none' })
}
const setOption = async () => {
    let chart = await echart.value?.getChart()
    chart?.setOption({
        title: {
            text: 'Referer of a Website',
            subtext: 'Fake Data',
            left: 'center'
        },
        tooltip: {
            trigger: 'item'
        },
        legend: {
            orient: 'vertical',
            left: 'left'
        },
        series: [
            {
                name: 'Access From',
                type: 'pie',
                radius: '50%',
                data: [
                    { value: 1048, name: 'Search Engine' },
                    { value: 735, name: 'Direct' },
                    { value: 580, name: 'Email' },
                    { value: 484, name: 'Union Ads' },
                    { value: 300, name: 'Video Ads' }
                ],
                emphasis: {
                    itemStyle: {
                        shadowBlur: 10,
                        shadowOffsetX: 0,
                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                    }
                }
            }
        ]
    })
}
</script>
<style lang="scss" scoped></style>

🌶️ 兼容性

平台兼容

H5uniAPP小程序version
☑️☑️☑️☑️

🌱 参数

参数名类型默认值描述
widthstring|number'100%'宽度css合法值,不要用auto
heightstring|number'300px'高度,css合法值,不要用auto,需要一个值,单位随意,不带单位默认是rpx

🌹 事件

事件名参数返回数据描述
onInit名称:chart,对象,-初始成功触发
click名称:chart,的事件对象参数,-图表元素被点击时触发

🌽 slot插槽

插槽名数据描述

🥗 ref方法

方法名参数返回值描述
getChart---
getImg---