feat:【IoT 物联网】初步实现“数据流转”功能

This commit is contained in:
YunaiV
2025-06-24 21:21:42 +08:00
parent 983699f636
commit 8479d557a2
19 changed files with 482 additions and 154 deletions

View File

@@ -0,0 +1,39 @@
import request from '@/config/axios'
/** IoT 数据流转规则信息 */
export interface DataRule {
id: number // 场景编号
name?: string // 场景名称
description: string // 场景描述
status?: number // 场景状态
sourceConfigs?: string // 数据源配置数组
sinkIds?: string // 数据目的编号数组
}
// IoT 数据流转规则 API
export const DataRuleApi = {
// 查询数据流转规则分页
getDataRulePage: async (params: any) => {
return await request.get({ url: `/iot/data-rule/page`, params })
},
// 查询数据流转规则详情
getDataRule: async (id: number) => {
return await request.get({ url: `/iot/data-rule/get?id=` + id })
},
// 新增数据流转规则
createDataRule: async (data: DataRule) => {
return await request.post({ url: `/iot/data-rule/create`, data })
},
// 修改数据流转规则
updateDataRule: async (data: DataRule) => {
return await request.put({ url: `/iot/data-rule/update`, data })
},
// 删除数据流转规则
deleteDataRule: async (id: number) => {
return await request.delete({ url: `/iot/data-rule/delete?id=` + id })
}
}

View File

@@ -1,7 +1,7 @@
import request from '@/config/axios'
// IoT 数据桥梁 VO
export interface DataBridgeVO {
// IoT 数据流转目的 VO
export interface DataSinkVO {
id?: number // 桥梁编号
name?: string // 桥梁名称
description?: string // 桥梁描述
@@ -79,8 +79,8 @@ export interface RedisStreamMQConfig extends Config {
topic: string
}
/** 数据桥梁类型 */
export const IoTDataBridgeConfigType = {
/** 数据流转目的类型 */
export const IotDataSinkTypeEnum = {
HTTP: 1,
TCP: 2,
WEBSOCKET: 3,
@@ -92,41 +92,35 @@ export const IoTDataBridgeConfigType = {
KAFKA: 32
} as const
export const IotDataBridgeDirectionEnum = {
INPUT: 1, // 输入
OUTPUT: 2 // 输出
} as const
// 数据桥梁 API
export const DataBridgeApi = {
// 查询数据桥梁分页
getDataBridgePage: async (params: any) => {
return await request.get({ url: `/iot/data-bridge/page`, params })
// 数据流转目的 API
export const DataSinkApi = {
// 查询数据流转目的分页
getDataSinkPage: async (params: any) => {
return await request.get({ url: `/iot/data-sink/page`, params })
},
// 查询数据桥梁详情
getDataBridge: async (id: number) => {
return await request.get({ url: `/iot/data-bridge/get?id=` + id })
// 查询数据流转目的详情
getDataSink: async (id: number) => {
return await request.get({ url: `/iot/data-sink/get?id=` + id })
},
// 新增数据桥梁
createDataBridge: async (data: DataBridgeVO) => {
return await request.post({ url: `/iot/data-bridge/create`, data })
// 新增数据流转目的
createDataSink: async (data: DataSinkVO) => {
return await request.post({ url: `/iot/data-sink/create`, data })
},
// 修改数据桥梁
updateDataBridge: async (data: DataBridgeVO) => {
return await request.put({ url: `/iot/data-bridge/update`, data })
// 修改数据流转目的
updateDataSink: async (data: DataSinkVO) => {
return await request.put({ url: `/iot/data-sink/update`, data })
},
// 删除数据桥梁
deleteDataBridge: async (id: number) => {
return await request.delete({ url: `/iot/data-bridge/delete?id=` + id })
// 删除数据流转目的
deleteDataSink: async (id: number) => {
return await request.delete({ url: `/iot/data-sink/delete?id=` + id })
},
// 查询数据桥梁(精简)列表
// TODO @puhui999getDataBridgeSimpleList 哈。项目的风格统一~ 之前有几个,我写错了。。。
getSimpleDataBridgeList() {
return request.get({ url: '/iot/data-bridge/simple-list' })
// 查询数据流转目的(精简)列表
getDataSinkSimpleList() {
return request.get({ url: '/iot/data-sink/simple-list' })
}
}

View File

@@ -104,7 +104,7 @@ interface ActionConfig {
type: number // 执行类型
deviceControl?: ActionDeviceControl // 设备控制
alert?: ActionAlert // 告警执行
dataBridgeId?: number // 数据桥接编号
dataBridgeId?: number // 数据流转目的编号
}
// 主接口