【2025最新版】零成本玩转IoT可视化开发:thingsboard-ui-vue3从安装到规则链实战全指南
2026-02-04 05:05:23作者:薛曦旖Francesca
为什么选择thingsboard-ui-vue3?
你是否还在为IoT平台UI开发烦恼?作为ThingsBoard官方前端的Vue3重构版本,thingsboard-ui-vue3基于Vue 3.5.13、TypeScript 5.8.2和Vite 6.2.6构建,整合了Ant Design Vue 4.2.6和AntV X6可视化引擎,完美适配ThingsBoard 4.1.0版本。相比传统前端方案,它提供:
- 开箱即用的IoT组件库:28+专用组件覆盖设备管理、数据可视化、规则引擎等核心场景
- 可视化规则链编辑器:基于AntV X6实现拖拽式规则节点配置,支持复杂业务逻辑编排
- 企业级权限控制:内置RBAC权限模型,适配多租户系统架构
- 无缝集成能力:已完成TDengine时序数据库适配,支持千万级设备数据存储
环境准备与安装
系统要求
| 环境依赖 | 最低版本 | 推荐版本 |
|---|---|---|
| Node.js | 18.x | 20.17.0+ |
| pnpm | 7.x | 10.7.1+ |
| Git | 2.30.0 | 2.45.0+ |
| 浏览器 | Chrome 90+ | Chrome 128.0+ |
快速安装步骤
# 1. 克隆仓库(国内加速地址)
git clone https://gitcode.com/oliver225/thingsboard-ui-vue3.git
cd thingsboard-ui-vue3
# 2. 安装依赖(推荐使用pnpm)
pnpm install
# 3. 配置后端接口(开发环境)
# 修改.env.development文件
# VITE_PROXY = [["/api","http://127.0.0.1:8080/api",false]]
# 4. 启动开发服务器
pnpm dev
⚠️ 注意:项目使用pnpm workspace管理依赖,npm/yarn用户需先执行
npm install -g pnpm
构建部署选项
# 标准生产构建
pnpm build
# Tomcat容器部署
pnpm build:tomcat
# 构建并预览
pnpm build:preview
构建产物默认输出至dist目录,支持Nginx、Tomcat等主流Web服务器部署。Tomcat模式构建会自动适配Java Web应用目录结构。
核心功能实战
1. 项目架构概览
mindmap
root((thingsboard-ui-vue3))
核心框架
Vue 3.5.13
Vite 6.2.6
TypeScript 5.8.2
UI组件
Ant Design Vue 4.2.6
Vue-Vben-Admin
28+业务组件
可视化引擎
AntV X6 2.18.1
ECharts 5.6.0
SVG.js
数据处理
Axios 1.8.4
TDengine适配
WebSocket客户端
2. 规则链编辑器实战
规则链(Rule Chain)是ThingsBoard的核心功能,用于处理设备数据流转和业务逻辑编排。thingsboard-ui-vue3提供了可视化编辑器,支持节点拖拽、连接配置和条件判断。
基础操作流程
flowchart TD
A[创建规则链] --> B[添加处理节点]
B --> C[配置节点属性]
C --> D[连接节点关系]
D --> E[设置触发条件]
E --> F[保存并部署]
关键代码实现
<template>
<div class="rule-chain-edit">
<div class="edit-stencil" id="stencil"></div>
<div class="edit-container" id="container"></div>
<Space class="fixed bottom-8 right-8">
<Button @click="handleSave">保存规则链</Button>
<Button @click="handleResetDebug">重置调试模式</Button>
</Space>
</div>
</template>
<script setup lang="ts">
import { Graph } from '@antv/x6';
import { Stencil, Snapline, Selection, History } from '@antv/x6-plugin';
import RuleChainNode from './node.vue';
// 注册自定义节点
register({
shape: 'rule-chain-node',
width: 200,
height: 50,
ports: {
groups: {
out: { position: 'right', attrs: { circle: { magnet: true, r: 5 } } },
in: { position: 'left', attrs: { circle: { magnet: true, r: 5 } } },
}
},
component: RuleChainNode,
})
// 初始化画布
const graph = new Graph({
container: document.getElementById('container'),
background: { color: '#F2F7FA' },
grid: { visible: true, type: 'doubleMesh' },
connecting: {
snap: true,
allowMulti: false,
validateEdge: validateEdge,
}
})
// 添加插件
graph.use(new Snapline())
graph.use(new Selection())
graph.use(new History())
// 保存规则链
async function handleSave() {
const cells = graph.toJSON().cells;
// 处理节点和连接数据
const nodes = cells.filter(cell => cell.shape === 'rule-chain-node');
const connections = cells.filter(cell => cell.shape === 'rule-edge');
await saveRuleChainMetaData({ nodes, connections });
}
</script>
核心节点类型
| 节点类型 | 用途 | 典型应用场景 |
|---|---|---|
| 过滤节点 | 数据筛选 | 温度异常检测 |
| 转换节点 | 格式转换 | JSON到Protobuf |
| 动作节点 | 业务操作 | 发送邮件通知 |
| 外部节点 | 系统集成 | 调用第三方API |
| 流程节点 | 逻辑控制 | 分支/聚合流程 |
3. 设备管理模块开发
设备管理是IoT平台的基础功能,thingsboard-ui-vue3提供了完整的设备CRUD、状态监控和数据可视化组件。
设备列表组件示例
<script setup lang="ts">
import { ref, onMounted } from 'vue';
import { useTable } from '/@/components/Table';
import { getDeviceList } from '/@/api/tb/device';
const { tableData, loading, fetchTableData } = useTable({
api: getDeviceList,
columns: [
{ title: '设备名称', dataIndex: 'name' },
{ title: '设备类型', dataIndex: 'type' },
{ title: '在线状态', dataIndex: 'status',
customRender: ({ record }) => (
<Tag color={record.status === 'online' ? 'green' : 'red'}>
{record.status}
</Tag>
)
},
{ title: '最后活动时间', dataIndex: 'lastActivityTime' },
]
});
onMounted(() => {
fetchTableData();
});
</script>
高级配置与优化
后端接口代理配置
在vite.config.ts中已预设代理配置,支持多环境切换:
// vite.config.ts
server: {
proxy: {
'/api': {
target: 'http://127.0.0.1:8080',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '/api'),
},
},
}
性能优化策略
- 组件懒加载:使用
createAsyncComponent实现路由级懒加载
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
const DeviceDetail = createAsyncComponent(() => import('/@/views/tb/device/detail.vue'));
-
大型图表优化:采用虚拟滚动和数据分片加载
-
缓存策略:使用Pinia状态管理和localStorage两级缓存
常见问题解决方案
跨域问题处理
// src/utils/http/axios/index.ts
const { VITE_PROXY } = import.meta.env;
if (VITE_PROXY) {
// 开发环境走代理
config.baseURL = '/api';
} else {
// 生产环境直接对接后端
config.baseURL = VITE_GLOB_API_URL;
}
规则链编辑器空白问题
- 检查AntV X6依赖是否完整安装
- 确认容器元素存在且尺寸正确
- 清除浏览器缓存或使用无痕模式尝试
设备数据接收延迟
- 检查WebSocket连接状态:
store/modules/websocket.ts - 优化时序数据库查询性能
- 调整前端数据采样频率
学习资源与社区支持
官方资源
- 项目仓库:https://gitcode.com/oliver225/thingsboard-ui-vue3
- 在线演示:http://thingsboard.yantsing.com/(测试账号:1069035666@qq.com,密码:17621315188)
- 文档中心:内置
docs目录包含API文档和组件示例
进阶学习路径
- 基础阶段:熟悉Vue3组合式API和TypeScript类型系统
- 组件开发:参考
src/components/RuleChain实现自定义节点 - 架构设计:研究权限系统实现
src/directives/permission.ts - 性能优化:分析
src/hooks/web/useECharts.ts中的图表优化策略
结语与后续规划
thingsboard-ui-vue3作为开源项目,目前已完成核心功能开发,后续将重点推进:
- Web组态功能完善
- 大屏可视化编辑器
- Uniapp小程序适配
- ThingsBoard 4.2+版本支持
如果你在使用过程中遇到问题或有功能建议,欢迎提交Issue或PR参与项目共建。别忘了给项目点赞收藏,关注最新更新!
本文档基于thingsboard-ui-vue3 v4.1.0版本编写,随着项目迭代可能存在差异,请以最新代码为准。
登录后查看全文
热门项目推荐
相关项目推荐
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00
热门内容推荐
最新内容推荐
Degrees of Lewdity中文汉化终极指南:零基础玩家必看的完整教程Unity游戏翻译神器:XUnity Auto Translator 完整使用指南PythonWin7终极指南:在Windows 7上轻松安装Python 3.9+终极macOS键盘定制指南:用Karabiner-Elements提升10倍效率Pandas数据分析实战指南:从零基础到数据处理高手 Qwen3-235B-FP8震撼升级:256K上下文+22B激活参数7步搞定机械键盘PCB设计:从零开始打造你的专属键盘终极WeMod专业版解锁指南:3步免费获取完整高级功能DeepSeek-R1-Distill-Qwen-32B技术揭秘:小模型如何实现大模型性能突破音频修复终极指南:让每一段受损声音重获新生
项目优选
收起
deepin linux kernel
C
27
11
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
561
3.81 K
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
891
652
昇腾LLM分布式训练框架
Python
115
146
Ascend Extension for PyTorch
Python
373
436
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
348
196
React Native鸿蒙化仓库
JavaScript
308
359
Dora SSR 是一款跨平台的游戏引擎,提供前沿或是具有探索性的游戏开发功能。它内置了Web IDE,提供了可以轻轻松松通过浏览器访问的快捷游戏开发环境,特别适合于在新兴市场如国产游戏掌机和其它移动电子设备上直接进行游戏开发和编程学习。
C++
57
7
暂无简介
Dart
794
196
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.36 K
772