看板卡片开发
看板卡片快速开发指南。
一、首先介绍下看板卡片
1、什么是看板卡片?
看板卡片是用来搭建ThingsPanel的页面的组件,可以是一个数字指示器,一个曲线,或者一个表格。
2、怎么使用看板卡片?
1)看板卡片创建、编辑
2)看板卡片使用
我们可以在3个地方使用看板卡片:
- 首页
- 设备功能模板的Web图表配置(仅图表卡片)
- 设备功能模板的App图表配置(仅图表卡片)
二、如何开发看板卡片
1. 明确将要开发的卡片类型
看板卡片目前分为2个类型:系统卡片 和 图表卡片。其中只有图表卡片可以在设备功能模板的Web图表配置和App图表配置中使用。
2. 在相应目录下创建文件夹和文件进行开发
一般包括4个文件(参考demo:/src/card/chart-card/demo):
demo
- index.ts // 导出目录:定义卡片的名称,id,类型(builtin:系统卡片,chart: 图表卡片),预设的参数,图标等
- component.vue // 卡片组件
- card-config.vue // 卡片配置表单,无配置可不添加,主要用于收集卡片特有的一些属性和值的配置信息
- poster.png // 卡片示意图,缩略图尺寸236*148
注:卡片全部自动加载,无需做额外引入。
3. 数据获取和保存
1)卡片配置表单(card-config.vue)中的数据如何保存
卡片配置表单用于收集用户对于卡片的配置信息,上层会通过传入一个ctx对象来收集数据:
const ctx = inject<IConfigCtx>('config-ctx')!;
表单中需要保存的信息都保存在 ctx.config 这个对象中即可。例如如果需要用户选一个颜色,可以把选定的颜色信息保存在 ctx.config.color 中:
<NColorPicker v-model:value="ctx.config.color" :show-alpha="false" />
。
2)如何在卡片组件(component.vue)中获取配置信息
在卡片组件中,可以通过组件的props属性获取配置信息:props.card.config
。
比如上面例子里保存的颜色信息,可以通过以下方式获取到:
<NIcon class="iconclass" :color="props?.card?.config?.color || 'black'">
。
3)设备数据的获取
在开发图表卡片的时候需要获取设备数据。有2种获取设备数据的方式:
- http方式:通过http请求接口
/telemetry/datas/current/keys
来获取设备的历史数据; - WebSocket方式:通过WebSocket的API来获取设备的实时数据。
我们已经在上层封装了通过WebSocket请求设备数据的方法,在卡片中只需要实现一个updateData方法,上层会调用这个方法,把最新的数据传递进来:
defineExpose({
updateData: (_deviceId: string | undefined, metricsId: string | undefined, data: any) => {
detail.value = metricsId ? data[metricsId] : '';
}
});