大屏使用问题_物联网平台

如何在大屏内展示告警列表?

答案

💡提示

如果需要将告警列表直接展示在大屏内,可以使用大屏组件"分页表格(适合告警或者设备列表)

"搭配动态接口使用。

动态接口配置:

大屏操作:


如何在大屏内进行属性下发?

答案

💡提示

如果需要在大屏内对设备数据进行控制,首先要保证设备物模型属性为读写,并使用"联动设备文本"组件达到对应的效果。

配置数据源:

大屏操作:

💡提示

示例过程过滤器可以通过修改filterDeviceData内容,返回不同的控制项,不使用过滤器会返回所有设备所以物模型属性的控制。该示例建议使用公共接口。

function filterDeviceData(data, deviceName, functionNames) {
    // 确保 functionNames 是数组,如果是字符串则转为单元素数组
    var names = Array.isArray(functionNames) ? functionNames : [functionNames];
    
    // 过滤 items
    var filteredItems = [];
    for (var i = 0; i < data.items.length; i++) {
        var item = data.items[i];
        if (item.name === deviceName) {
            // 复制 item 避免修改原对象
            var newItem = {};
            for (var key in item) {
                if (item.hasOwnProperty(key)) {
                    newItem[key] = item[key];
                }
            }
            // 过滤 timeseries
            if (newItem.timeseries && Array.isArray(newItem.timeseries)) {
                var filteredTs = [];
                for (var j = 0; j < newItem.timeseries.length; j++) {
                    var tsEntry = newItem.timeseries[j];
                    var funcName = tsEntry.thingsModel && tsEntry.thingsModel.functionName;
                    // 检查 functionName 是否在允许列表中
                    if (funcName && names.indexOf(funcName) !== -1) {
                        filteredTs.push(tsEntry);
                    }
                }
                newItem.timeseries = filteredTs;
            }
            filteredItems.push(newItem);
        }
    }
    
    // 构造返回结果
    return {
        total: filteredItems.length,
        items: filteredItems
    };
}
//mqtt为设备名称只填一个  测试下发为物模型属性名称可多选
res = filterDeviceData(res, "mqtt", ["测试下发"]);
delete res.items[0].name;
return res;

云腾五洲-AI助理