一、对接第三方系统API,定时刷新数据

选中饼状图,选择动态数据数据类型,点击编辑Api接口:

配置外部系统的API地址,参数通过代理支持跨域:

处理数据转换返回数据类型:

刷新数据后即可看到饼图的变化:

取到真实的后台数据,并定时刷新。

二、实时推送并联动孪生场景内部对象

为孪生场景图层配置动态接口和交互代码,选中孪生场景图,选择动态数据数据类型,点击编辑Api接口:

点击事件添加交互事件:

代码示例:

_this.$eventHub.$on('3d-data', (data) => {

    console.log('3d-data catch..', data)

    // data 数据

    // 下发操作图元事件

    \_this.$eventHub.$emit('3d-notice', (\_content, data) => { // 图纸上下文

        console.log('3d-notice..')

        \_content.g3d.dm().each((node) => {

            // 查找对应图元

            if (node.getTag() && node.getTag().indexOf(data.code) == 0) {

                // 遍历属性匹配图元对象的attr

                if (data.deviceAttributeStatusList) {

                    data.deviceAttributeStatusList.forEach((as) => {

                      node.a(as.propCode, as.propValue);

                    });

                }                    

                \_content.\_broadcastEventListener('deviceDataUpdate', 'updateLight', node, \[data\])

            }

        });

    });

});

模拟发起设备流水报文,控制灯的开关:

三、孪生对象联动大屏图层组件

再孪生场景图纸中添加一个摄像头:

新增一个视频组件,并在孪生场景图纸上绑定相应的交互代码:

代码示例:

// 监听3D图元点击

\_this.on3dClickData(e => {

    console.log('on3dClickData catch..', e)

    if(e.\_tag==='VIR1636767844151'){

       \_this.container.$refs\['subgroup'\].$refs\['itemad19ffef-fe2d-4217-8175-5c6aaca73974'\]\[0\].$el.style.display='block'

    }else{

        \_this.container.$refs\['subgroup'\].$refs\['itemad19ffef-fe2d-4217-8175-5c6aaca73974'\]\[0\].$el.style.display='none'

    }

})

\_this.$eventHub.$on('3d-clear', (data) => {

    console.log('3d-clear catch..', data)

    \_this.container.$refs\['subgroup'\].$refs\['ad19ffef-fe2d-4217-8175-5c6aaca73974'\]\[0\].$el.style.display='none'

});

点击摄像头,可弹出对应的视频画面:

results matching ""

    No results matching ""