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

这把我C 2021-07-13 16:37:15 11221

前言

各位读者好,截止目前,ThingsBoard系列文章已经做了十篇,分别是

上一篇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的数据不是动态的,仪表盘的大小不能全屏。
后面我们会讲解更多有关仪表盘的配置项,敬请关注。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 92 3 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
这把我C
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区