程序员开发实例大全宝库

网站首页 > 编程文章 正文

ThingsBoard教程(十二):部件库中使用echarts

zazugpt 2024-08-13 13:08:05 编程文章 27 ℃ 0 评论

上一篇TB教程我们讲解了如何在部件库中写一个简单的html页面。以及如何引入第三方资源,那么本期我们就以前来看一下在tb中如何使用echarts。echarts具有丰富,美观的案例,如果能移植到tb中,那么对我们开发仪表盘,dashboard将会事半功倍。下面让我们一起看一下如何在部件库中使用echarts。

引入echarts外部资源

我们创建一个部件库,然后再创建一个部件,进入到部件的编辑页面。 在资源tab下,引入 echarts.js 地址为https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js

设置容器

html面板下,写一个div用于显示图表

<div id="chart-container"></div>

创建了div后,还不行,必须要给这个div设置宽高,要不然显示不出图表。 在css面板下写下

#chart-container{
    height: 500px;
    width: 500px;
}

编写初始化代码

渲染图表的代码是写在js的面板里 首先需要获取图表的容器 使用以下代码

const chartDom = $("#chart-container", self.ctx.$container)[0];

我们使用self.ctx来获取部件的上下文,其中$container 代表当前部件的最外层的div。需要图表容器必须要在self.ctx.$container 中寻找,此外,我们不必引入jquery,官方默认是引入了,直接使用即可。 获取图表容器后下面就很简单了。 定义图表的配置参数 optinon js面板的完整代码如下

 self.onInit = function() {
    const chartDom = $("#chart-container", self.ctx
        .$container)[0];
    const myChart = echarts.init(chartDom);
    var option;

    option = {
        // color: ['#5470c6', '#fac858'],
        color: ['#fff', '#fff'],
        legend: {
            data: ['已用产能', '剩余产能']
        },
        xAxis: {
            type: 'category',
            data: ["制芯", "组芯", "熔炼", "浇注", "冷却",
                "落砂", "切割", "抛丸", "打磨", "检测"
            ]
        },
        yAxis: {
            type: 'value',
            axisLabel: {
                formatter: '{value}%'
            }
        },
        series: [{
                name: '已用产能',
                type: 'bar',
                stack: 'total',
                label: {
                    show: true,
                    formatter: '{c}%'
                },
                emphasis: {
                    focus: 'series'
                },
                data: [76, 54, 62, 59, 67, 81,
                    84, 92, 96, 83
                ],
                itemStyle: {
                    decal: {
                        symbol: 'rect',
                        symbolSize: 1,
                        maxTileWidth: 512,
                        maxTileHeight: 512,
                        symbolKeepAspect: true,
                        dashArrayX: [1, 0],
                        dashArrayY: [2, 2],
                        color: '#5470c6',
                        // rotation: 0.5235987755982988
                    }
                }
            },
            {
                name: '剩余产能',
                type: 'bar',
                stack: 'total',
                label: {
                    show: true,
                    formatter: '{c}%'
                },
                emphasis: {
                    focus: 'series'
                },
                data: [24, 46, 38, 41, 33, 19,
                    16, 8, 4, 17
                ],
                itemStyle: {
                    decal: {
                        symbol: 'rect',
                        symbolSize: 1,
                        maxTileWidth: 512,
                        maxTileHeight: 512,
                        symbolKeepAspect: true,
                        dashArrayX: [1, 0],
                        dashArrayY: [2, 2],
                        color: '#fac858',
                    }
                }
            },
        ],
        aria: {
            enabled: true,
            decal: {
                show: true,
            }
        }
    };

    option && myChart.setOption(option);

}

这个时候保存后就能看到效果了

如下

配置部件库显示到系统首页

我们配置好后如何将这个部件放到首页,让用户一登录系统就能看到。 首先我们需要先找个租户管理员的账号,登录系统 可以使用系统默认的账户 tenant@thingsboard.org / tenant

登录系统后,进入到仪表盘库菜单,点击右上角创建一个home仪表盘库。

创建后,点击home那一列,打开 仪表盘的编辑页面

打开仪表盘后,点击添加新的部件

然后选择自己的部件所在的部件库

选择后部件库,还需要选择部件库中的某一个部件。

点击添加即可。然后点右下角的对号保存。

配置完我们的仪表盘库后, 然后进入 Home Setting 的菜单。找到我们刚刚创建的仪表盘库,点击保存。

最后在点击首页,就能看到首页已经变成了我们配置的仪表盘。

这个案例写的比较粗浅,echarts的数据不是动态的,仪表盘的大小不能全屏。 后面我们会讲解更多有关仪表盘的配置项,敬请关注。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表