展示组件
百度图表 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>
🌶️ 兼容性
平台兼容
H5 | uniAPP | 小程序 | version |
---|---|---|---|
☑️ | ☑️ | ☑️ | ☑️ |
🌱 参数
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
width | string|number | '100%' | 宽度css合法值,不要用auto |
height | string|number | '300px' | 高度,css合法值,不要用auto,需要一个值,单位随意,不带单位默认是rpx |
🌹 事件
事件名 | 参数 | 返回数据 | 描述 |
---|---|---|---|
onInit | 名称:chart,对象, | - | 初始成功触发 |
click | 名称:chart,的事件对象参数, | - | 图表元素被点击时触发 |
🌽 slot插槽
插槽名 | 数据 | 描述 |
---|
🥗 ref方法
方法名 | 参数 | 返回值 | 描述 |
---|---|---|---|
getChart | - | - | - |
getImg | - | - | - |